Tabs WebBrowser

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Hastling.

    Tabs WebBrowser

    Hallo,

    ich habe einen WebBrowser (ohh, schon wieder).
    Nun habe ich auch Tabs dazugebastelt, nur kann ich
    nur dann zurück wenn ich sofort zurück klicke.
    Wenn ich erst auf einen anderen gehe und
    wieder zurück ist die ganze Chronik gelöscht.

    Kann mir jemand helfen???

    Danke im Voraus
    Hastling

    EDIT: Keiner eine Idee?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hastling“ ()

    Das Tutorial ist eh nicht gerade gut und einfach :thumbdown: Ich hatte hier im Forum schon längst 'ne bessere Lösung gepostet... Aber daran erinnert sich wohl kaum noch jemand...

    Neuer Tab (Sub):

    VB.NET-Quellcode

    1. Public Sub AddTab(ByRef URL As String, ByRef TabControl As TabControl)
    2. Dim Browser As New WebBrowser
    3. Dim Tab As New TabPage
    4. Browser.Tag = TabControl
    5. Browser.Dock = DockStyle.Fill
    6. TabControl.Tag = Browser
    7. TabControl.Controls.Add(Tab)
    8. Tab.TabPages.Add(Browser)
    9. Browser.Navigate(URL)
    10. End Sub


    Neuer Tab:

    VB.NET-Quellcode

    1. AddTab("vb-paradise.de", TabControl1)

    Es erscheint ein neuer Tab im TabControl1 mit der Seite "vb-paradise.de" offen.

    WebBrowser ansprechen:

    VB.NET-Quellcode

    1. Dim WB As WebBrowser = TabControl1.SelectedTab.Tag 'Der aktuell ausgewählte Browser wird angesprochen
    2. 'oder
    3. Dim WB As WebBrowser = TabControl1.TabPages(0).Tag 'statt 0 den Seitenindex angeben!

    Beim ersten wird der offene Tab ausgewählt, Beim 2. der Tab, dessen Index du bei 0 angibst.

    Oder: Mit veränderlichem Text

    CustomBrowser-Klasse:

    VB.NET-Quellcode

    1. Public Class CustomBrowser
    2. Inherits WebBrowser
    3. Private Sub DocCompleted() Handles Me.DocumentCompleted
    4. Dim TP As TabPage = Me.Tag
    5. TP.Text = Me.DocumentTitle
    6. End Sub
    7. End Class

    Die Klasse ist beliebig erweiterbar.

    Veränderungen im AddTab-Sub: "WebBrowser" in "CustomBrowser" ändern.
    Veränderungen beim Ansprechen: "WebBrowser" in "CustomBrowser" ändern.
    Wie kann man machen, dass wenn sich die URL des Webbrowsers
    ändert, die ausgewählte TapPage sich so nennt?

    EDIT: Hier mein Code zum erstellen:

    Quellcode

    1. Dim Webbrowser As New WebBrowser
    2. TabControl1.TabPages.Add(i, "Tab Page " & i)
    3. TabControl1.SelectTab(i - 1)
    4. Webbrowser.Name = "Webbrowser"
    5. Webbrowser.ContextMenuStrip = ContextMenuStrip1
    6. Webbrowser.IsWebBrowserContextMenuEnabled = False
    7. Webbrowser.Dock = DockStyle.Fill
    8. TabControl1.SelectedTab.Controls.Add(Webbrowser)
    9. i += 1


    (i ist ein Integer=1)

    EDIT: Zum Zugreifen benutze ich folgenden Code:

    Quellcode

    1. CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoBack()

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Hastling“ ()

    du fügst mit AddHandler beim hinzufügen des WebBrowsers das DocumentTitleChanged Event hinzu, dort verwendest du dann die Variable sender, welche den WebBrowser angibt, von welchem es ausgelöst wurde, also ca. so:

    VB.NET-Quellcode

    1. CType(CType(sender,WebBrowser).Parent,TabPage).Text = CType(sender.WebBrowser.DocumentTitle
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    dann halt:

    VB.NET-Quellcode

    1. CType(CType(sender,WebBrowser).Parent,TabPage).Text = CType(sender,WebBrowser).DocumentTitle

    funktioniert nicht ist keine Fehlerbeschreibung, hast du denn das DocumentTitleChanged Event mit AddHandler bei jedem neuen Tab hinzugefügt?
    wie sieht dein Code jetzt aus?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    so:

    Quellcode

    1. Private Sub NeuerTabToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NeuerTabToolStripMenuItem.Click
    2. Dim Webbrowser As New WebBrowser
    3. TabControl1.TabPages.Add(i, "Tab Page " & i)
    4. TabControl1.SelectTab(i - 1)
    5. Webbrowser.Name = "Webbrowser"
    6. Webbrowser.ContextMenuStrip = ContextMenuStrip1
    7. Webbrowser.IsWebBrowserContextMenuEnabled = False
    8. Webbrowser.Dock = DockStyle.Fill
    9. TabControl1.SelectedTab.Controls.Add(Webbrowser)
    10. i += 1
    11. CType(CType(sender, WebBrowser).Parent, TabPage).Text = CType(sender, WebBrowser).DocumentTitle
    12. End Sub


    EDIT: Geht nicht:

    Das Objekt des Typs "System.Windows.Forms.ToolStripMenuItem" kann nicht in Typ "System.Windows.Forms.WebBrowser" umgewandelt werden.

    EDIT:
    Habe es jetzt so versucht:

    Quellcode

    1. Dim Webbrowser As New WebBrowser
    2. TabControl1.TabPages.Add(i, "Tab Page " & i)
    3. TabControl1.SelectTab(i - 1)
    4. Webbrowser.Name = "Webbrowser"
    5. Webbrowser.ContextMenuStrip = ContextMenuStrip1
    6. Webbrowser.IsWebBrowserContextMenuEnabled = False
    7. Webbrowser.Dock = DockStyle.Fill
    8. TabControl1.SelectedTab.Controls.Add(Webbrowser)
    9. i += 1
    10. AddHandler (Webbrowser.DocumentCompleted)


    Aber er sagt mir, ich solle noch ein Komma hinzufügen???


    EDIT: Habe es hinbekommen:

    Quellcode

    1. Dim Webbrowser As New WebBrowser
    2. TabControl1.TabPages.Add(i, "Tab Page " & i)
    3. TabControl1.SelectTab(i - 1)
    4. Webbrowser.Name = "Webbrowser"
    5. Webbrowser.ContextMenuStrip = ContextMenuStrip1
    6. Webbrowser.IsWebBrowserContextMenuEnabled = False
    7. Webbrowser.Dock = DockStyle.Fill
    8. TabControl1.SelectedTab.Controls.Add(Webbrowser)
    9. i += 1
    10. AddHandler Webbrowser.DocumentCompleted, AddressOf andd



    Quellcode

    1. Private Sub andd(ByVal sender As System.Object, ByVal e As System.EventArgs)
    2. TextBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
    3. CType(CType(sender, WebBrowser).Parent, TabPage).Text = CType(sender, WebBrowser).DocumentTitle
    4. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Hastling“ ()