Menustrip code's

Status
Niet open voor verdere reacties.

Pim15

Gebruiker
Lid geworden
18 mrt 2012
Berichten
257
Ik ben bezig met een webbrowser en daar zet ik een Menustrip in. Alleen heb ik nu de code's nodig. Ik heb al wat om google gezocht maar daar kon ik niets vinden. Dus mijn vraag is: Welke code's heb ik nodig voor:

Print
Print preview
Save as
Copy
Cut
Paste
Properties
Undo
Redo
Select all

Alvast bedankt,
Pim
 
Laatst bewerkt:
Volgens mij zitten Undo/Redo etc. niet in een gewone webbrowser ;)
 
dus als je rechtermuisknop in de browser doe bedoel je? Want begrijp de vraag niet volledig.
 
Bedankt voor het snelle reageren. JoZ1; Daar heb je gelijk in. foutje.
MatthiWare; Nee, ik bedoel bv in Windows Internet Explorer, als je daar op Alt drukt dan verschijnt er een balkje met tekst. Ik hoop dat het nu duidelijk is.

Pim
 
Wil je het met code's doen of visueel via de designer (als je daarover beschikt)

Code zou zijn:
Code:
Dim menu As New MenuStrip()
        Dim menuItemMain As New ToolStripMenuItem()
        Dim subMenuItemMain_1 As New ToolStripMenuItem()

        menu.Text = "Hoofd Menu"
        menuItemMain.Text = "Hoofd Menu Item"
        subMenuItemMain_1.Text = "Hoofd Menu Sub-Item"

        menuItemMain.DropDownItems.AddRange(New ToolStripMenuItem() {subMenuItemMain_1})
        menu.Items.AddRange(New ToolStripMenuItem() {menuItemMain})

        Me.Controls.Add(menu)

Je moet het natuurlijk nog aanpassen voor al jouw items.
Veel succes!
 
Ik denk dat hij zich afvraagt hoe hij de functies moet uitvoeren.

Print
[CPP]WebBrowser1.Print()[/CPP]

Print preview
[CPP]WebBrowser1.ShowPrintPreviewDialog()[/CPP]

Save as
[CPP]WebBrowser1.ShowSaveAsDialog()[/CPP]

Copy/Cut/Paste
Wat wil je kopiëren/knippen/plakken als je in de menustrip klikt?

Properties
[CPP]WebBrowser1.ShowPropertiesDialog()[/CPP]


Ik denk dat je het meeste wel op internet had kunnen vinden...
 
Ik bedoel inderdaad de code's om de functie uit tevoeren. Ik had al even op het internet gekeken, maar daar zag ik deze code's: WebBrowser1.ShowPropertiesDialog(). Maar die code werkt niet en verder op het internet kon ik het niet vinden. Hopelijk werkt het wel met die 1 ervoor. Ik heb nu even geen toegang tot mijn computer, maar vanmiddag ga ik het even proberen.

Pim
 
Met die 1 ervoor? :confused:

Het is zo dat ik met 'WebBrowser1' de naam van je WebBrowserControl bedoel. Maar dat had je al door, toch? ;)
 
Ja, het werkt! Hiep hoi. En met copy, paste en cut bedoel ik dat als je tekst selecteert en dan op cut of copy drukt dat het dan wordt gekopieerd of geknipt.

JoZ1; Ik bedoel de 1 voor WebBrowser1

Pim
 
Laatst bewerkt:
Kopiëren gaat zo:

[cpp]Try
WebBrowser1.Document.ExecCommand("Copy", False, "")
Catch ex As Exception
End Try[/cpp]

De reden dat ik 't in een Try-Catch blok heb gezet, is omdat er anders een foutmelding ontstaat als er geen tekst is geselecteerd.

Plakken:

[cpp]Try
WebBrowser1.Document.ExecCommand("Paste", False, Clipboard.GetText)
Catch ex As Exception
End Try[/cpp]

Knippen:

[cpp]Try
WebBrowser1.Document.ExecCommand("Cut", False, "")
Catch ex As Exception
End Try[/cpp]
 
Het werkt, maar als ik wat wil knippen/ kopiëren of plakken in de adresbalk werkt het niet. Is dat te verhelpen?

Pim
 
Dat kan:

Kopiëren:

[cpp]If Not TextBox1.SelectedText = "" Then
My.Computer.Clipboard.SetText(TextBox1.SelectedText)
Else
Try
WebBrowser1.Document.ExecCommand("Copy", False, "")
Catch ex As Exception
End Try
End If[/cpp]

Knippen:

[cpp]If Not TextBox1.SelectedText = "" Then
My.Computer.Clipboard.SetText(TextBox1.SelectedText)
TextBox1.Text = TextBox1.Text.Replace(TextBox1.SelectedText, "")
Else
Try
WebBrowser1.Document.ExecCommand("Cut", False, "")
Catch ex As Exception
End Try
End If[/cpp]

Plakken:

[cpp]If Not TextBox1.SelectedText = "" Then
TextBox1.Text = TextBox1.Text.Replace(TextBox1.SelectedText, My.Computer.Clipboard.GetText())
Else
Try
WebBrowser1.Document.ExecCommand("Paste", False, "")
Catch ex As Exception
End Try
End If[/cpp]
 
Eh, ik had bij het testen niet echt opgelet en het plakken werkt niet. Ik gebruikte het eerst niet echt en het is me nu pas opgevallen. Dus mijn vraag wat is er mis gegaan. Ik heb Webbrowser1 in myBrowser vervangen omdat mijn webbrowser de naam heeft myBrowser en TextBox1 in tstbUrl. Maar dat kan het niet zijn.

Pim
 
Je kan constant checken of Ctrl+V ingedrukt word, en dan met bv. sendkeys de inhoud van het klembord 'typen'...

Om te kijken of Ctrl+V ingedrukt word en dan met sendkeys en een timer het klembord 'typen':
[CPP] <System.Runtime.InteropServices.DllImport("user32.dll")> Public Shared Function GetAsyncKeyState(ByVal vKey As Keys) As Short
End Function

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If GetAsyncKeyState(Keys.ControlKey) And GetAsyncKeyState(Keys.V) Then
My.Computer.Keyboard.SendKeys(My.Computer.Clipboard.GetText)
End If
End Sub[/CPP]

En wat ik op msdn lees, zou het gewoon goed moeten werken:
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.execcommand%28v=vs.80%29.aspx (hier werkt het linkje naar de Command Identifiers niet)
Dus hier een werkende link: http://msdn.microsoft.com/en-us/library/ms533049%28v=vs.85%29.aspx

Als je dan bij plakken kijkt, dan zie je dat het gewoon zou moeten werken...


Succes! :thumb:
MartinJM


[edit]
De timer in het voorbeeld is zodat er constant gecheckt wordt. Niet voor het plakken zelf. Let erop dat je de interval van de timer niet te hoog zet (dan wordt het vaker geplakt als je het 1 keer indrukt) maar ook niet te laag (dan moet je Ctrl+V lang ingedrukt houden of lijkt het niet te werken).[/edit]
 
Laatst bewerkt:
Oh ja, sorry Pim. Was dit topic vergeten. :o

Zie post hierboven ^^ voor een goed antwoord op je vraag.
 
Ik heb het even goed bekeken maar ik snap het niet echt. Kan je het uitwerken tot een simpel stappenplan dat iemand van 11 snapt?

Pim
 
Ben jij 11? o.O
Ik dacht 15 :P (Pim15)

Martin heeft je toch een code gegeven? :)

En om eerlijk te zijn vind ik het onzinnig om een 'Paste'-button in een webbrowser te gooien.
Heb jij dat wel eens gezien in de grote browsers? (IE, GC, FF etc.) ;)
 
Volgens mij zit het wel in de meeste browsers. In FF in ieder geval wel. (Bij bewerken in de menustrip.)

De code die ik je gaf heeft wel een nadeel: De goede input-box in het webbrowser control moet geselecteerd zijn. In andere woorden: Waar de tekst moet komen te staan moet geselecteerd zijn. Als je alleen op een button drukt, is die button geselecteerd en niet de plaats waar de tekst moet komen (denk ik). Dus daarop moet dan ook nog eerst wat gevonden worden.

Het grootste deel van de code die ik je gegeven had, was om te kijken of ctr+v ingedrukt was, maar dat was dus niet de bedoeling, dus dan kan het veel simpeler.
Deze code 'doet alsof' er iets getypt wordt op het toetsenbord:
[CPP]My.Computer.Keyboard.SendKeys("*Wat er getypt moet worden*")[/CPP]

Aangezien je het klembord wil 'typen', zal je daar (ongeveer) zoiets van moeten maken:
[CPP]My.Computer.Keyboard.SendKeys(My.Computer.Clipboard.GetText)[/CPP]

Deze code zal dan dus tekst van het klembord af halen om die vervolgens te 'typen'. Maar zoals het met typen ook is: Je kan alleen ergens typen als je dat tekstvlak ook geselecteerd hebt...

Ik hoop dat dit zo duidelijk is.
Succes! :thumb:
MartinJM
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan