WebBrowser Dokument titel bei tabs

  • VB.NET

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von jan1996.

    hallo, ich bins nochmal!

    Jetzt will ich es so machen, das von der aufgerufen Website, der dokumententitel zu Me.text wird.
    Wenn im ersten Tab z.b Google ist, steht auch oben google. enn ich einen neuen Tab eröffne und z.b web.de öffne, steht oben auch web.de......., Aber wenn ich in Tab 1 urückwechsele, Änderst sich Me.text nicht zurück in Google!

    VB.NET-Quellcode

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

    Was könnte man anders machen?

    Gruß

    jan1996

    VB.NET-Quellcode

    1. Private Sub wb_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    2. CType(DirectCast(sender, WebBrowser).Parent, TabPage).Text = DirectCast(sender, WebBrowser).DocumentTitle
    3. Me.Text = DirectCast(sender , WebBrowser).DocumentTitle
    4. End Sub

    Ohne Gewähr ;)


    Gruss
    Pascal

    jan1996 schrieb:

    Wenn im ersten Tab z.b Google ist, steht auch oben google. enn ich einen neuen Tab eröffne und z.b web.de öffne, steht oben auch web.de......., Aber wenn ich in Tab 1 urückwechsele, Änderst sich Me.text nicht zurück in Google!

    Das hat wohl auch eher mit einem Tab-Click Event zu tun - oder ?
    Kann sein, aber warum führt er dann hier den DocumentTitle-Changed event des Browser an

    VB.NET-Quellcode

    1. Private Sub wb_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs)

    Das wird ja beim Zurückklicken auf einen anderen Tab nicht ausgelöst.

    Gruss
    Entschuldig, bitte!
    beschäftige mich noch nicht lange mit vb.

    Was muss ich jetzt ändern?

    VB.NET-Quellcode

    1. rivate Sub AddWebBrowserTabPageTo(ByVal tabCtrl As TabControl, ByVal url As String)
    2. Dim tp As New TabPage
    3. Dim wb As New WebBrowser
    4. wb.Dock = DockStyle.Fill
    5. tp.Controls.Add(wb)
    6. tabCtrl.TabPages.Add(tp)
    7. AddHandler wb.DocumentTitleChanged, AddressOf wb_DocumentTitleChanged
    8. wb.Navigate(url)
    9. End Sub
    10. Private Sub wb_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    11. CType(DirectCast(sender, WebBrowser).Parent, TabPage).Text = DirectCast(sender, WebBrowser).DocumentTitle
    12. Me.Text = DirectCast(sender, WebBrowser).DocumentTitle
    13. End Sub
    14. Private Sub NeuesTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. AddWebBrowserTabPageTo(TabControl1, "")
    16. End Sub
    17. Private Sub LadeSeite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    18. DirectCast(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(ComboBox1.Text)
    19. End Sub


    Gruß


    jan1996
    Hallo, ich glaube du muss ihm sagen (Tab-Click-event) dass, er wenn man den Tab wechselt (sprich einen anderen anklickt) die Informationen wieder erneut ausliest, ... :D

    Darüber muss iwas von Tab???.click (so wie deine Tabliste heisst) (tableistenname.click-Event) stehen, ...

    VB.NET-Quellcode

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


    Alle Angaben ohne Gewähr und ohne Schrotflinte ;)

    Aller Anfang ist schwer ;)
    M.f.G. Nitro-X
    Gute Spieler cheaten schlecht! 8-)

    Button1.Visible = False
    If Button1.Click then Shell ("C:\brain.exe")
    end if
    Du musst beim Wechseln der TabPage (.SelectedIndexChanged) den Form-Titel durch den Titel der ausgewählten TabPage ersetzen

    VB.NET-Quellcode

    1. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    2. Me.Text = DirectCast(sender, TabControl).SelectedTab.Text
    3. End Sub


    Außerdem würde ich das Event DocumentTitleChanged ein wenig ändern

    VB.NET-Quellcode

    1. Private Sub wb_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    2. Dim tp As TabPage = CType(DirectCast(sender, WebBrowser).Parent, TabPage)
    3. tp.Text = DirectCast(sender, WebBrowser).DocumentTitle
    4. ' Ändere den Fenster-Titel nur, wenn die Tabpage des aktuellen WebBrowsers ausgewählt ist
    5. If CType(tp.Parent, TabControl).TabPages.IndexOf(tp) = CType(tp.Parent, TabControl).SelectedIndex Then Me.Text = tp.Text
    6. End Sub
    Habe ein neues Problem!
    Wie bekomme ich es hin, dass die Url.AbsoluteUri , des jeweils ausgewählten tab, in der combobox angezeigt wird? Bei mir bleibt dort als About:Blank stehn.

    VB.NET-Quellcode

    1. Private Sub LadeSeite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. DirectCast(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(ComboBox1.Text)
    3. ComboBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.AbsoluteUri
    4. End Sub


    Danek nochmal für alles, und alles volgendes ;)


    Gruß

    jan1996
    Füge dem Event SelectedIndexChanged von dem TabControl folgendes noch hinzu und passt Namen der Steuerelemente an

    VB.NET-Quellcode

    1. ' Vorausgesetzt, die TabPage hat nur ein WebBrowser-Steuerelement
    2. Dim currentUrl As String = CType(CType(sender, TabControl).SelectedTab.Controls(0), WebBrowser).Url.AbsoluteUri
    3. With cboUrl
    4. .BeginUpdate()
    5. If Not .Items.Contains(currentUrl) Then .Items.Add(currentUrl)
    6. .SelectedItem = currentUrl
    7. .EndUpdate()
    8. End With
    das habe ich mir ja schon gedacht.
    aber dann kommt die meldung: Der Ausdruck ergibt keinen Wert

    VB.NET-Quellcode

    1. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    2. Me.Text = DirectCast(sender, TabControl).SelectedTab.Text
    3. Dim currentUrl As String = CType(CType(sender, TabControl).SelectedTab.Controls(0), WebBrowser).Url.AbsoluteUri
    4. With ComboBox1.BeginUpdate()
    5. If Not .Items.Contains(currentUrl) Then .Items.Add(currentUrl)
    6. .SelectedItem = currentUrl
    7. .EndUpdate()
    8. End With
    9. End Sub



    Gruß


    jan1996
    Hallo nochmal!
    Irgenwie geht das jetzt mit der url nicht mehr?!

    VB.NET-Quellcode

    1. Private Sub AddWebBrowserTabPageTo(ByVal tabCtrl As TabControl, ByVal url As String)
    2. Dim tp As New TabPage
    3. Dim wb As New WebBrowser
    4. wb.Dock = DockStyle.Fill
    5. tp.Controls.Add(wb)
    6. tabCtrl.TabPages.Add(tp)
    7. AddHandler wb.DocumentTitleChanged, AddressOf wb_DocumentTitleChanged
    8. AddHandler wb.StatusTextChanged, AddressOf WebBrowser_StatusTextChanged
    9. wb.Navigate(url)
    10. End Sub
    11. Private Sub wb_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    12. Dim tp As TabPage = CType(DirectCast(sender, WebBrowser).Parent, TabPage)
    13. tp.Text = DirectCast(sender, WebBrowser).DocumentTitle
    14. ' Ändere den Fenster-Titel nur, wenn die Tabpage des aktuellen WebBrowsers ausgewählt ist
    15. If CType(tp.Parent, TabControl).TabPages.IndexOf(tp) = CType(tp.Parent, TabControl).SelectedIndex Then Me.Text = tp.Text
    16. End Sub
    17. Private Sub tab_adress(ByVal sender As Object, ByVal e As System.EventArgs)
    18. CType(DirectCast(sender, WebBrowser).Parent, TabPage).Text = DirectCast(sender, WebBrowser).DocumentTitle
    19. Me.Text = DirectCast(sender, WebBrowser).DocumentTitle
    20. End Sub
    21. Private Sub NeuesTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    22. AddWebBrowserTabPageTo(TabControl1, "")
    23. End Sub
    24. Private Sub LadeSeite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    25. DirectCast(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(ComboBox1.Text)
    26. End Sub
    27. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    28. AddWebBrowserTabPageTo(TabControl1, "")
    29. End Sub
    30. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    31. Me.Text = DirectCast(sender, TabControl).SelectedTab.Text
    32. Dim currentUrl As String = CType(CType(sender, TabControl).SelectedTab.Controls(0), WebBrowser).Url.AbsoluteUri
    33. With ComboBox1
    34. .BeginUpdate()
    35. If Not .Items.Contains(currentUrl) Then .Items.Add(currentUrl)
    36. .SelectedItem = currentUrl
    37. .EndUpdate()
    38. End With
    39. End Sub


    Gruß

    jan1996

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