VB 2008 - WebBrowser mit Tabs
Hey Leute, ich habe ein Problem, dass mich fast zur Verzweiflung treibt...
ich benutze VB 2008 Express und möchte einen Webbrowser schreiben. Nun bin ich schon sehr weit. Jetzt will ich eine "Tab-Funktion" einbauen und habe auch schon einen Code, der mir das ermöglicht:
( http://www.vb-magazin.de/forums/forums/t/4428.aspx )
Das mit den neuen Tabs funktioniert soweit, aber wenn ich dann eine url eingebe zeigt er im Titel des bspw. 2. Tabs den Titel an, die Webseite allerdings wird im Tab1 angezeigt, egal in welchem Tab ich eine Webseite öffnen will, diese wird immer im ersten Tab angezeigt..
Weiß jemand woran das liegt?
MfG,
J.R.
ich benutze VB 2008 Express und möchte einen Webbrowser schreiben. Nun bin ich schon sehr weit. Jetzt will ich eine "Tab-Funktion" einbauen und habe auch schon einen Code, der mir das ermöglicht:
Public Class Form1
Dim CurrBrowser As WebBrowser
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Alle Tabs entfernen
Me.TabControl1.TabPages.Clear()
AddTab("Neuer Tab...", "about:blank")
' Jetzigen Browser auslesen
GetCurrBrowser()
End Sub
Private Sub ComboBox1_KeyDown(ByVal sender As System.Object, ByVal e As KeyEventArgs) Handles ComboBox1.KeyDown
' Wenn ENTER gedrückt wird navigieren und zur
' ComoBox hinzufügen.
If e.KeyCode = Keys.Enter Then
CurrBrowser.Navigate(Me.ComboBox1.Text)
Me.ComboBox1.Items.Add(Me.ComboBox1.Text)
End If
End Sub
Private Sub TabPage1_TabIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.TabIndexChanged
GetCurrBrowser()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Tab hinzufügen siehe "Sub AddTab()"
AddTab("Neuer Tab...", "about:blank")
End Sub
Private Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
' TabTitel in den Titel der Website ändern
Me.TabControl1.SelectedTab.Text = CurrBrowser.DocumentTitle
' Wenn man zu "about:blank" navigiert wird der Titel zu "" geändert da
' es eine leere seite ist..
If e.Url.AbsoluteUri = "about:blank" Then
Me.TabControl1.SelectedTab.Text = "Neuer Tab..."
End If
End Sub
Private Sub wb_Navigating(ByVal sender As Object, ByVal e As WebBrowserNavigatingEventArgs)
' Während die Seite geladen wird "Laden ..." als Titel verwenden (macht einen kleinen Eindruck) :P
Me.TabControl1.SelectedTab.Text = "Laden ..."
Me.ComboBox1.Text = CurrBrowser.Url.AbsoluteUri
End Sub
Private Sub wb_Navigated(ByVal sender As Object, ByVal e As WebBrowserNavigatedEventArgs)
' Text in ComboBox zum absoluten URI ändern.. Sprich wenn du www.google.de oder
' google.de ein giebst -> http://www.google.de/ ;)
' Hier kannst du auch das "Me.ComboBox1.Items.Add(Me.ComboBox1.Text)" hin
' verschieben statt gleich nach ENTER (oben) wird dan der komplette URI
' zur Liste hinzugefügt :D
Me.ComboBox1.Text = CurrBrowser.Url.AbsoluteUri
End Sub
Sub AddTab(ByVal name As String, ByVal url As String)
Dim tab As TabPage = New TabPage(name)
Dim wb As WebBrowser = New WebBrowser
' Zur Seite "url" navigieren
wb.Navigate(url)
wb.Dock = DockStyle.Fill
' Den Browser zur TabPage hinzufügen
tab.Controls.Add(wb)
' Einen EventHandler des WebBrowsers (DocumentCompleted & Navigating) hinzufügen
AddHandler wb.DocumentCompleted, AddressOf wb_DocumentCompleted
AddHandler wb.Navigating, AddressOf wb_Navigating
AddHandler wb.Navigated, AddressOf wb_Navigated
' Tab zum TabControl hinzüfügen
Me.TabControl1.TabPages.Add(tab)
End Sub
Sub GetCurrBrowser()
' CurrBrowser auf den Browser des ausgewählten Tabs setzen
For Each wb As WebBrowser In Me.TabControl1.SelectedTab.Controls
CurrBrowser = wb
Exit For
Next
End Sub
End Class
( http://www.vb-magazin.de/forums/forums/t/4428.aspx )
Das mit den neuen Tabs funktioniert soweit, aber wenn ich dann eine url eingebe zeigt er im Titel des bspw. 2. Tabs den Titel an, die Webseite allerdings wird im Tab1 angezeigt, egal in welchem Tab ich eine Webseite öffnen will, diese wird immer im ersten Tab angezeigt..
Weiß jemand woran das liegt?
MfG,
J.R.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116835
Url: https://administrator.de/forum/vb-2008-webbrowser-mit-tabs-116835.html
Ausgedruckt am: 09.04.2025 um 03:04 Uhr
1 Kommentar
Hallo,
dein Fehler liegt wahrscheinlich in der FKT GetCurrBrowser, könnte ich mir denken.
Ich würde hier eher über eine Variable in der Klasse arbeiten, welche ich bei:
auf den sender binde.
Aber jetzt mal ehrlich warum tust du dir das an?
Schon mal über Threads was gehört? Das laden der Webseiten würd ich immer in nen Thread Packen damit der Krempel sich mit anderen Dingen derweilen
austoben kann.
Was für ne Auslastung auf dem PC kreigt den dieser Webbrowser so, wenn sagen wir 4 Flash Sites + Webradio + Chat am laufen ist?
grüße
dein Fehler liegt wahrscheinlich in der FKT GetCurrBrowser, könnte ich mir denken.
Ich würde hier eher über eine Variable in der Klasse arbeiten, welche ich bei:
Private Sub TabPage1_TabIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
auf den sender binde.
Aber jetzt mal ehrlich warum tust du dir das an?
Schon mal über Threads was gehört? Das laden der Webseiten würd ich immer in nen Thread Packen damit der Krempel sich mit anderen Dingen derweilen
austoben kann.
Was für ne Auslastung auf dem PC kreigt den dieser Webbrowser so, wenn sagen wir 4 Flash Sites + Webradio + Chat am laufen ist?
grüße