
federiko (Normal User)
Rookie
    
Messaggi: 30
Iscritto: 14/08/2010
|
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
|
|

mattia1481 (Member)
Pro
    
Messaggi: 84
Iscritto: 03/11/2008
|
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.
|
|

federiko (Normal User)
Rookie
    
Messaggi: 30
Iscritto: 14/08/2010
|
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 |
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
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 |
foreach(var element in webBrowser.Document.Links)
element.AttachEvent("click", new EventHandler(gestore));
|
|
|

mattia1481 (Member)
Pro
    
Messaggi: 84
Iscritto: 03/11/2008
|
...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.
;-)
|
|

federiko (Normal User)
Rookie
    
Messaggi: 30
Iscritto: 14/08/2010
|
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 |
foreach(var element in webBrowser.Document.Links)
element.AttachEvent("click", new EventHandler(gestore));
|
|
sksmi totem ma nn ho capito bene il codice che mi hai dato.. cosa devo fare precisamente =( |
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
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. |
|

federiko (Normal User)
Rookie
    
Messaggi: 30
Iscritto: 14/08/2010
|
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 |
Public Class Form1 Public Sub gestore(ByVal sender As Object, ByVal e As EventArgs) opentab() End Sub Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted foreach(var element in webBrowser.Document.Links) element.AttachEvent("click", New EventHandler(gestore)) End Sub End Class
|
|
|