Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Context Menu Strip?
Forum - C# / VB.NET - Context Menu Strip?

Avatar
federiko (Normal User)
Rookie


Messaggi: 30
Iscritto: 14/08/2010

Segnala al moderatore
Postato alle 19:50
Martedì, 15/11/2011
ciao ragazzi, vorrei creare un TabBrowser e vorrei che mi si aprisse un contextmenu, quando clicco col tasto destro su un link, con cui si possa aprire quel link in una nuova scheda del browser..

spero di essere stato chiaro

grazie anticipatamente bye :)

PM Quote
Avatar
mattia1481 (Member)
Pro


Messaggi: 84
Iscritto: 03/11/2008

Segnala al moderatore
Postato alle 9:57
Mercoledì, 16/11/2011
La linea guida è :

- Crea una classe che eredita dal controllo Link.
- Associa alla tua classe un ContextMenu che esegue il codice che desideri.
- Usa la tua classe per i links del tuo browser.

PM Quote
Avatar
federiko (Normal User)
Rookie


Messaggi: 30
Iscritto: 14/08/2010

Segnala al moderatore
Postato alle 22:21
Mercoledì, 16/11/2011
Testo quotato

Postato originariamente da mattia1481:

La linea guida è :

- Crea una classe che eredita dal controllo Link.
- Associa alla tua classe un ContextMenu che esegue il codice che desideri.
- Usa la tua classe per i links del tuo browser.




non so come fare il passaggio 1 e 3

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 12:13
Giovedì, 17/11/2011
La linea guida è sbagliata. Non esistono controlli di tipo LinkLabel (gestiti) in un browser. L'engine si occupa di gestire i link sulla base del markup del documento. Bisogna aggiungere all'evento click di ogni HtmlElement A un gestore d'evento.
Codice sorgente - presumibilmente C# / VB.NET

  1. foreach(var element in webBrowser.Document.Links)
  2.     element.AttachEvent("click", new EventHandler(gestore));


PM Quote
Avatar
mattia1481 (Member)
Pro


Messaggi: 84
Iscritto: 03/11/2008

Segnala al moderatore
Postato alle 15:03
Giovedì, 17/11/2011
...azz, in effetti ho dato un consiglio su un argomento che non conosco, ero convinto che i link che si trovano nei browser fossero controlli di tipo System.Windows.Forms.LinkLabel

Sorry.

;-)

PM Quote
Avatar
federiko (Normal User)
Rookie


Messaggi: 30
Iscritto: 14/08/2010

Segnala al moderatore
Postato alle 19:09
Giovedì, 17/11/2011
Testo quotato

Postato originariamente da Il Totem:

La linea guida è sbagliata. Non esistono controlli di tipo LinkLabel (gestiti) in un browser. L'engine si occupa di gestire i link sulla base del markup del documento. Bisogna aggiungere all'evento click di ogni HtmlElement A un gestore d'evento.
Codice sorgente - presumibilmente C# / VB.NET

  1. foreach(var element in webBrowser.Document.Links)
  2.     element.AttachEvent("click", new EventHandler(gestore));





sksmi totem ma nn ho capito bene il codice che mi hai dato.. cosa devo fare precisamente =(

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:54
Venerdì, 18/11/2011
Testo quotato

Postato originariamente da mattia1481:

...azz, in effetti ho dato un consiglio su un argomento che non conosco, ero convinto che i link che si trovano nei browser fossero controlli di tipo System.Windows.Forms.LinkLabel

Sorry.

;-)



Sono controlli simili, ma non gestiti dal framework .NET. Suppongo che tu debba interferire con l'engine per ottenere un puntatore a quei controlli.


@federiko: gestore è il nome di una procedura del tipo proc(sender As Object, e As EventArgs) che gestisce l'evento click.

PM Quote
Avatar
federiko (Normal User)
Rookie


Messaggi: 30
Iscritto: 14/08/2010

Segnala al moderatore
Postato alle 0:12
Domenica, 20/11/2011
ho provato ad accennare il codice come avevi ipotizzato tu, ma a quanto pare nn ho capito bene qualche passaggio:

Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.  
  3.     Public Sub gestore(ByVal sender As Object, ByVal e As EventArgs)
  4.         opentab()
  5.     End Sub
  6.  
  7.     Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
  8.         foreach(var element in webBrowser.Document.Links)
  9.         element.AttachEvent("click", New EventHandler(gestore))
  10.     End Sub
  11. End Class



opentab() è una public sub ke ho dichiarato precedentemente.. il webbrowser nn ha un evento click inoltre. e poi mi da errore alle 2 righe di codice del webbrowser1

:(:(:(:(:(:(

PM Quote