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 - Problema evento di controllo NewWindow2 WebBrowser (vb.net)
Forum - C# / VB.NET - Problema evento di controllo NewWindow2 WebBrowser (vb.net)

Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 17:52
Giovedì, 12/03/2009
Un saluto a tutti.Sono giorni che ci provo ma senza risultati.Ho creato un webbrowser funziona tutto bene,solo ke quando clicco su un link di quelli che aprono una nuova finestra,si apre internet explorer,invece io vorrei ke si aprisse con una nuova finestra del mio browser,ho cercato in internet e ho trovato sul sito microsoft questo codice che però a me non funziona xkè ho messo + webbrowser in + tabcontrol (l'ho provato facendo un browser con un unico webbrowser nel form e funziona) :(

Codice sorgente - presumibilmente VB.NET

  1. Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles AxWebBrowser1.NewWindow2
  2.         Dim frmWB As Form1
  3.         frmWB = New Form1()
  4.  
  5.         frmWB.AxWebBrowser1.RegisterAsBrowser = True
  6.         e.ppDisp = frmWB.AxWebBrowser1.Application
  7.         frmWB.Visible = True
  8. End Sub


Qualcuno può aiutarmi??grazie...

Ultima modifica effettuata da raf_lele il 12/03/2009 alle 17:57
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:15
Venerdì, 13/03/2009
Basta usare una variabile globale che contenga un riferimento al browser di volta in volta selezionato...

PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 21:06
Venerdì, 13/03/2009
Ho fatto così ma non va mi puoi aiutare con il codice???grz...
Codice sorgente - presumibilmente VB.NET

  1. Private Sub WebBrowser1_NewWindow2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles WebBrowser1.NewWindow2
  2.         Dim frmWB As Form1
  3.         frmWB = New Form1()
  4.         frmWB.WebBrowser1.RegisterAsBrowser = True
  5.         e.ppDisp = frmWB.WebBrowser1.Application
  6.         frmWB.Visible = True
  7.     End Sub
  8.     Private Sub WebBrowser2_NewWindow2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles WebBrowser2.NewWindow2
  9.         Dim frmWB As Form1
  10.         frmWB = New Form1()
  11.         frmWB.WebBrowser2.RegisterAsBrowser = True
  12.         e.ppDisp = frmWB.WebBrowser2.Application
  13.         frmWB.Visible = True
  14.     End Sub
  15.     Private Sub WebBrowser3_NewWindow2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles WebBrowser3.NewWindow2
  16.         Dim frmWB As Form1
  17.         frmWB = New Form1()
  18.         frmWB.WebBrowser3.RegisterAsBrowser = True
  19.         e.ppDisp = frmWB.WebBrowser3.Application
  20.         frmWB.Visible = True
  21.     End Sub


PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:40
Domenica, 15/03/2009
Non hai seguito il mio consiglio. Ti avevo detto di usare una variabile globale:
Codice sorgente - presumibilmente VB.NET

  1. Class Form1
  2.     Private WithEvents CurrentWebBrowser As AxWebBrowser
  3.     '...
  4. End Class


Che cambi quando cambi tab:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Selected As TabPage = TabControl.SelectedTab
  2. 'Presumo che in una tab ci sia solo il web browser,
  3. 'perciò mi riferisco ad asso come il primo (ed unico)
  4. 'controllo della tab
  5. CurrentWebBrowser = Selected.Controls(0)


E poi gestisci l'evento di quell'oggetto:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub CurrentWebBrowser_NewWindow2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles CurrentWebBrowser.NewWindow2
  2.         Dim frmWB As Form1
  3.         frmWB = New Form1()
  4.  
  5.         frmWB.AxWebBrowser1.RegisterAsBrowser = True
  6.         e.ppDisp = frmWB.AxWebBrowser1.Application
  7.         frmWB.Visible = True
  8. End Sub


PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 17:11
Lunedì, 16/03/2009
Ho provato ma neanke così funziona...:(

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:24
Mercoledì, 18/03/2009
Deve funzionare, posta il codice.

PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 16:30
Mercoledì, 18/03/2009
Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2. Private WithEvents CurrentWebBrowser As AxSHDocVw.AxWebBrowser
  3.  
  4.  Private Sub CurrentWebBrowser_NewWindow2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event)
  5.               Select Case TabControl1.SelectedIndex.ToString()
  6.                  Case 0
  7.             CurrentWebBrowser = aWebBrowser1
  8.                Case 1
  9.           CurrentWebBrowser = WebBrowser2
  10.              Case 2
  11.         CurrentWebBrowser = WebBrowser3
  12.         End Select
  13.         Dim frmWB As Form1
  14.         frmWB = New Form1()
  15.         frmWB.aWebBrowser1.RegisterAsBrowser = True
  16.         e.ppDisp = frmWB.aWebBrowser1.Application
  17.         frmWB.Visible = True
  18.     End Sub
  19.    Private Sub AggiungiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AggiungiToolStripMenuItem.Click
  20.         Dim STRLINE As String
  21.         Dim FILEREADER As System.IO.StreamReader
  22.         Dim response As MsgBoxResult
  23.  
  24.         If TextBox1.Text = "" Then
  25.             Exit Sub
  26.         End If
  27.  
  28.         FILEREADER = New System.IO.StreamReader(Application.StartupPath & "\" & "preferiti.txt")
  29.         STRLINE = FILEREADER.ReadToEnd
  30.         While STRLINE <> Nothing
  31.             STRLINE = FILEREADER.ReadToEnd
  32.  
  33.             If STRLINE = TextBox1.Text Then
  34.                 MsgBox("Il sito " + TextBox1.Text + "è già presente nella lista dei preferiti")
  35.                 FILEREADER.Close()
  36.                 FILEREADER = Nothing
  37.                 Exit Sub
  38.             End If
  39.         End While
  40.  
  41.         FILEREADER.Close()
  42.  
  43.         FILEREADER = Nothing
  44.         response = MsgBox("Desideri inserire il sito " + TextBox1.Text + " nella lista dei preferiti?", MsgBoxStyle.YesNo)
  45.  
  46.         If response = 6 Then
  47.             Dim FileWriter As New System.IO.StreamWriter(Application.StartupPath & "\" & "preferiti.txt", True)
  48.             FileWriter.Write(vbCrLf + TextBox1.Text)
  49.             FileWriter.Close()
  50.             FileWriter = Nothing
  51.         Else
  52.             Exit Sub
  53.         End If
  54.     End Sub



Ho un piccolo problema anke con i preferiti se gli dico di non aggiungere un sito già presente nella lista lo aggiunge lo stesso...Come posso risolvere??? Aiutooo:hail:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:04
Venerdì, 20/03/2009
1. Dal momento che CurrentWebBrowser all'inizio è Nothing, se tu non lo reimposti prima, rimarrà sempre Nothing e quindi non produrrà eventi. Lo devi impostare nell'evento SelectedTabChanged (o una cosa simile) del TabControl.
2. Hai usato FILEREADER.ReadToEnd() invece che ReadLine().

PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 18:33
Venerdì, 20/03/2009
Grazie provo...

PM Quote