View Full Version : [VB.NET] Navigazione a Schede
ciao ragazzi, è la prima volta che scrivo in questa sezione in quanto ho un problemone, sto creando un web browser con vb.net ed ora sto implementando la navigazione a schede, tutto funziona perfettamente solo che quando io clicco su aggiungi nuova scheda, il browser me l'aggiunge ma c'è sempre la pagina della prima scheda in tutte le schede.
vi posto sotto il codice che ho assegnato al pulsante e quello che ho assegnato all'interno del timer:
codice nel timer:
Dim browse As New WebBrowser
browse.Dock = DockStyle.Fill
TabControl1.SelectedTab.Controls.Add(browse)
codice nel pulsante:
TabControl1.TabPages.Add()
sperando in un vostro pronto aiuto vi ringrazio anticipatamente.
Sarà molto difficile che qualcuno risponda concretamente alla tua richiesta.
Posta il tuo codice e magari descrivi meglio il problema.
Per ora sarei curioso di sapere a che ti serve un Timer per un browser a schede... :stordita:
VegetaSSJ5
16-11-2009, 08:38
piccola curiosità OT.
il webbrowser integrato in .net si appoggia a internet explorer?
piccola curiosità OT.
il webbrowser integrato in .net si appoggia a internet explorer?
Sì, il controllo WebBrowser di .NET fa uso dell'engine di IE.
Perciò chi si butta nello sviluppo su WebBrowser pensando di costruirsi il "suo" browser indipendente, temo avrà brutte sorprese...
grazie per le vostre risposte, rispondo subito a te marcogg allora, ho inserito il timer in quanto ho visto così su di una guida.
per il webbrowser, lo so che usa l'engine di ie.
il codice sorgente, lo posto tra un po'
grazie ancora
scusatemi ragazzi, ma sono stato molto occupato: vi posto tutto il sorgente
ciao
Imports System.IO
Public Class Form1
Dim HTML As Object
Dim File As System.IO.StreamReader
Dim oRead As System.IO.StreamReader
Dim oWrite As System.IO.StreamReader
Dim RETEDISPONIBILE As Boolean
Dim OPEN As New OpenFileDialog()
Dim SAVE As New SaveFileDialog()
Dim VALUE As Boolean
Dim INSTANCE As New WebBrowser
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Timer1.Start()
CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox1.Text)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'pulsante indietro
WebBrowser1.GoBack()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'pulsante avanti
WebBrowser1.GoForward()
End Sub
Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
'avanzamento progress bar
ProgressBar1.Maximum = e.MaximumProgress
ProgressBar1.Value = e.CurrentProgress
TextBox1.Text = (WebBrowser1.Url.ToString)
End Sub
Private Sub OpzioniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpzioniToolStripMenuItem.Click
frm_Opzioni.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'pulsante home
WebBrowser1.Navigate(frm_Opzioni.Txt_Iniziale.Text)
End Sub
Private Sub SalvaPaginaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalvaPaginaToolStripMenuItem.Click
'pulsante salva pagina
WebBrowser1.ShowSaveAsDialog()
End Sub
Private Sub AnnullaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnnullaToolStripMenuItem.Click
'pulsante annulla
TextBox1.Undo()
End Sub
Private Sub TagliaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TagliaToolStripMenuItem.Click
'pulsante taglia
TextBox1.Cut()
End Sub
Private Sub CopiaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopiaToolStripMenuItem.Click
'pulsante copia
TextBox1.Copy()
End Sub
Private Sub IncollaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IncollaToolStripMenuItem.Click
'pulsante incolla
TextBox1.Paste()
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
'riconoscimento pulsante invio
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
WebBrowser1.Navigate(TextBox1.Text)
End If
End Sub
Private Sub TextBox1_MouseDoubleClick1(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDoubleClick
TextBox1.SelectAll()
End Sub
Private Sub StampaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StampaToolStripMenuItem.Click
'pulsante stampa
WebBrowser1.ShowPrintDialog()
End Sub
Private Sub AnteprimaDiStampaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnteprimaDiStampaToolStripMenuItem.Click
'pulsante anteprima stampa
WebBrowser1.ShowPrintPreviewDialog()
End Sub
Private Sub EsciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click
End
End Sub
Private Sub ApriIndirizzoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ApriIndirizzoToolStripMenuItem.Click
frm_link.Show()
End Sub
Private Sub InformazioniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InformazioniToolStripMenuItem.Click
frm_info.Show()
End Sub
Private Sub ControlloReteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ControlloReteToolStripMenuItem.Click
'contrllo disponibilità rete
RETEDISPONIBILE = My.Computer.Network.IsAvailable
If RETEDISPONIBILE = True Then
MsgBox("Rete Disponibile", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Else
MsgBox("Rete non Disponibile", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End If
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Me.Text = (WebBrowser1.DocumentTitle & " - Rubber Web Browser")
End Sub
Private Sub NotepadToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotepadToolStripMenuItem.Click
Process.Start("Notepad.exe")
End Sub
Private Sub RegeditToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegeditToolStripMenuItem.Click
Process.Start("Regedit.exe")
End Sub
Private Sub LineaDiComandoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LineaDiComandoToolStripMenuItem.Click
Process.Start("Cmd.exe")
End Sub
Private Sub InformazioniPaginaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InformazioniPaginaToolStripMenuItem.Click
WebBrowser1.ShowPropertiesDialog()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'File = File.Read("G:\colour.txt")
' frm_Opzioni.Txt_Iniziale.Text = ("http://" & oRead.ReadLine)
frm_Opzioni.TrackBar1.Value = 10
WebBrowser1.Navigate(frm_Opzioni.Txt_Iniziale.Text)
End Sub
Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click
WebBrowser1.Navigate("http://www.rubberwebbrowser.it")
End Sub
Private Sub SorgentePaginaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SorgentePaginaToolStripMenuItem.Click
HTML = WebBrowser1.DocumentText
frm_codice.Show()
frm_codice.TextBox1.Text = HTML
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
End Sub
Private Sub ApriFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ApriFileToolStripMenuItem.Click
OpenFileDialog1.ShowDialog()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim browse As New WebBrowser
browse.Dock = DockStyle.Fill
TabControl1.SelectedTab.Controls.Add(browse)
TabControl1.TabPages.Add(TextBox1.Text)
End Sub
End Class
Continuo a non spiegarmi la presenza di quei Timer... :mbe:
Inoltre manca la routine di Timer1.
il timer lo tolto, in quanto non mi serviva, se riguardi il codice ora, l'ho corretto
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim browse As New WebBrowser
browse.Dock = DockStyle.Fill
TabControl1.SelectedTab.Controls.Add(browse)
TabControl1.TabPages.Add(TextBox1.Text)
End Sub
End Class
Immagino questa sia la routine incriminata.
Anche a causa di quei Timer, ho l'impressione generale che si tratti di codice buttato giù senza sapere esattamente cosa si stia facendo...
In particolare non mi spiego TabControl1.SelectedTab.Controls.Add(browse). Perchè usi SelectedTab ?
Inoltre, altro grosso dubbio sull'accoppiata :
TabControl1.SelectedTab.Controls.Add(browse)
TabControl1.TabPages.Add(TextBox1.Text)
Questo aggiunge un WebBrowser nuovo alla TabPage esistente e selezionata ( che quindi va a sovrapporsi a quello preesistente, altrimenti a che serve avere una TabPage vuota ? :mbe: ). E poi aggiunge una nuova TabPage vuota...
Se vuoi una nuova Tab del browser non è più logico così?
Private cntTp As Integer = 1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim WB As New WebBrowser
WB.Dock = DockStyle.Fill
Dim TP As New TabPage("nomeTP_" & cntTp)
TP.Name = "nomeTP_" & cntTp
cntTp += 1
TabControl1.TabPages.Add(TP)
TP.Controls.Add(WB)
End Sub
si, ho usato il tuo codice, la tab la crea ma rimane ancora il problema che in tutte le tab ho sempre la stessa pagina
si, ho usato il tuo codice, la tab la crea ma rimane ancora il problema che in tutte le tab ho sempre la stessa pagina
Se hai davvero usato il mio codice non vedo come sia possibile.
A me crea semplicemente una TabPage nuova con un WebBrowser "about:blank".
te lo giuro, adesso ti posto il codice di nuovo:
Imports System.IO
Public Class Form1
Dim HTML As Object
Dim File As System.IO.StreamReader
Dim oRead As System.IO.StreamReader
Dim oWrite As System.IO.StreamReader
Dim RETEDISPONIBILE As Boolean
Dim OPEN As New OpenFileDialog()
Dim SAVE As New SaveFileDialog()
Dim VALUE As Boolean
Dim INSTANCE As New WebBrowser
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
WebBrowser1.Navigate(TextBox1.Text)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'pulsante indietro
WebBrowser1.GoBack()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'pulsante avanti
WebBrowser1.GoForward()
End Sub
Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
'avanzamento progress bar
ProgressBar1.Maximum = e.MaximumProgress
ProgressBar1.Value = e.CurrentProgress
TextBox1.Text = (WebBrowser1.Url.ToString)
End Sub
Private Sub OpzioniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpzioniToolStripMenuItem.Click
frm_Opzioni.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'pulsante home
WebBrowser1.Navigate(frm_Opzioni.Txt_Iniziale.Text)
End Sub
Private Sub SalvaPaginaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalvaPaginaToolStripMenuItem.Click
'pulsante salva pagina
WebBrowser1.ShowSaveAsDialog()
End Sub
Private Sub AnnullaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnnullaToolStripMenuItem.Click
'pulsante annulla
TextBox1.Undo()
End Sub
Private Sub TagliaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TagliaToolStripMenuItem.Click
'pulsante taglia
TextBox1.Cut()
End Sub
Private Sub CopiaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopiaToolStripMenuItem.Click
'pulsante copia
TextBox1.Copy()
End Sub
Private Sub IncollaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IncollaToolStripMenuItem.Click
'pulsante incolla
TextBox1.Paste()
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
'riconoscimento pulsante invio
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
WebBrowser1.Navigate(TextBox1.Text)
End If
End Sub
Private Sub TextBox1_MouseDoubleClick1(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDoubleClick
TextBox1.SelectAll()
End Sub
Private Sub StampaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StampaToolStripMenuItem.Click
'pulsante stampa
WebBrowser1.ShowPrintDialog()
End Sub
Private Sub AnteprimaDiStampaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnteprimaDiStampaToolStripMenuItem.Click
'pulsante anteprima stampa
WebBrowser1.ShowPrintPreviewDialog()
End Sub
Private Sub EsciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click
End
End Sub
Private Sub ApriIndirizzoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ApriIndirizzoToolStripMenuItem.Click
frm_link.Show()
End Sub
Private Sub InformazioniToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InformazioniToolStripMenuItem.Click
frm_info.Show()
End Sub
Private Sub ControlloReteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ControlloReteToolStripMenuItem.Click
'contrllo disponibilità rete
RETEDISPONIBILE = My.Computer.Network.IsAvailable
If RETEDISPONIBILE = True Then
MsgBox("Rete Disponibile", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Else
MsgBox("Rete non Disponibile", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End If
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Me.Text = (WebBrowser1.DocumentTitle & " - Rubber Web Browser")
End Sub
Private Sub NotepadToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotepadToolStripMenuItem.Click
Process.Start("Notepad.exe")
End Sub
Private Sub RegeditToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegeditToolStripMenuItem.Click
Process.Start("Regedit.exe")
End Sub
Private Sub LineaDiComandoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LineaDiComandoToolStripMenuItem.Click
Process.Start("Cmd.exe")
End Sub
Private Sub InformazioniPaginaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InformazioniPaginaToolStripMenuItem.Click
WebBrowser1.ShowPropertiesDialog()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'File = File.Read("G:\colour.txt")
' frm_Opzioni.Txt_Iniziale.Text = ("http://" & oRead.ReadLine)
frm_Opzioni.TrackBar1.Value = 10
WebBrowser1.Navigate(frm_Opzioni.Txt_Iniziale.Text)
End Sub
Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click
WebBrowser1.Navigate("http://www.rubberwebbrowser.it")
End Sub
Private Sub SorgentePaginaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SorgentePaginaToolStripMenuItem.Click
HTML = WebBrowser1.DocumentText
frm_codice.Show()
frm_codice.TextBox1.Text = HTML
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
End Sub
Private Sub ApriFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ApriFileToolStripMenuItem.Click
OpenFileDialog1.ShowDialog()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim cntTp As Integer = 1
Dim WB As New WebBrowser
WB.Dock = DockStyle.Fill
Dim TP As New TabPage("nomeTP_" & cntTp)
TP.Name = "nomeTP_" & cntTp
cntTp += 1
TabControl1.TabPages.Add(TP)
TP.Controls.Add(WB)
End Sub
End Class
Mah, permetti una critica generale. Vedo parecchie cose che non tornano :
Dim HTML As Object
Perchè mai, se è destinato a contenere una String ?
Dim oRead As System.IO.StreamReader
Dim oWrite As System.IO.StreamReader
Perchè oWrite è uno StreamReader ? Dovrebbe essere un writer, a rigor di logica, ma soprattutto, perchè è dichiarato e mai utilizzato ?
Dim OPEN As New OpenFileDialog()
Dim SAVE As New SaveFileDialog()
Dim VALUE As Boolean
Dim INSTANCE As New WebBrowser
Questi 4 sono dichiarati e mai utilizzati.
Private Sub EsciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click
End
End Sub
Perchè mai usare End ?
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
End Sub
Sub vuota, a che serve ?
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim cntTp As Integer = 1
Dim WB As New WebBrowser
WB.Dock = DockStyle.Fill
Dim TP As New TabPage("nomeTP_" & cntTp)
TP.Name = "nomeTP_" & cntTp
cntTp += 1
TabControl1.TabPages.Add(TP)
TP.Controls.Add(WB)
End Sub
Questo NON è il mio codice. cntTp deve stare FUORI, altrimenti a che serve fare cntTp += 1 ???
Sono solo alcune stranezze che vedo, da un esame superficiale.
Il mio consiglio ? Butta tutto, chiediti con precisione COSA deve fare il programma, e riscrivi da zero.
Se hai fatto copia/incolla da un sito che ti ha spacciato questa roba per "tutorial", o simili... butta via anche il sito ! ;)
no, non ho fatto copia ed incolla, lo sto facendo insieme ad un mio amico...comunque grazie per il tuo supporto ora funge:) .. possiamo chiudere il topic
ciao ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.