WebBrowser mit Tabs ergibt NullReferenceException

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von kleinmichi.

    WebBrowser mit Tabs ergibt NullReferenceException

    Hallo zusammen,

    ich bin ein Hobby-Programmierer und mache mir zurzeit einen einfachen WebBrowser. Da ich mir Visual Basic gerne selber beibringen möchte, suche ich mir immer die Hilfe aus dem Internet und Youtube. Jedenfalls wollte ich gerne einen WebBrowser mit Tabs machen und habe mir ein deutsches Tutorial auf Youtube.com gesucht. Habe eins gefunden und das nachgemacht. Gut erklärt und alles. Nun funktioniert alles im Video nur bei mir nicht. Unten ist der Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim AktiverBrowser As WebBrowser
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Me.TabControl1.TabPages.Clear()
    5. AddTab("Neuer Tab...", "about:blank")
    6. GetAktiverBrowser()
    7. End Sub
    8. Private Sub AddTab(ByVal name As String, ByVal url As String)
    9. Dim tab As TabPage = New TabPage(name)
    10. Dim wb As WebBrowser = New WebBrowser
    11. wb.Navigate(url)
    12. wb.Dock = DockStyle.Fill
    13. tab.Controls.Add(wb)
    14. AddHandler wb.DocumentCompleted, AddressOf BrowserFertig
    15. AddHandler wb.Navigating, AddressOf BrowserSeiteLaden
    16. Me.TabControl1.TabPages.Add(tab)
    17. Me.TabControl1.SelectedTab = tab
    18. Me.TextBox1.Focus()
    19. End Sub
    20. Private Sub BrowserFertig()
    21. If Not AktiverBrowser.DocumentTitle.ToString = Nothing Then
    22. Me.TabControl1.SelectedTab.Text = AktiverBrowser.DocumentTitle
    23. End If
    24. End Sub
    25. Private Sub GetAktiverBrowser()
    26. For Each wb As WebBrowser In Me.TabControl1.SelectedTab.Controls
    27. wb = AktiverBrowser
    28. Exit For
    29. Next
    30. End Sub
    31. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    32. GetAktiverBrowser()
    33. AktiverBrowser.GoBack()
    34. End Sub
    35. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    36. GetAktiverBrowser()
    37. AktiverBrowser.GoForward()
    38. End Sub
    39. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    40. GetAktiverBrowser()
    41. AktiverBrowser.Refresh()
    42. End Sub
    43. Private Sub NeuerTabToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NeuerTabToolStripMenuItem.Click
    44. AddTab("Neuer Tab...", "about:blank")
    45. GetAktiverBrowser()
    46. End Sub
    47. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click, Button6.Click
    48. GetAktiverBrowser()
    49. AktiverBrowser.Navigate(ComboBox1.Text)
    50. End Sub
    51. Private Sub BrowserSeiteLaden()
    52. Me.TabControl1.SelectedTab.Text = "Laden..."
    53. End Sub
    54. Private Sub TabSchließenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabSchließenToolStripMenuItem.Click
    55. Me.TabControl1.TabPages.Remove(Me.TabControl1.SelectedTab)
    56. End Sub
    57. 'WebBrowser Suche durch Taste "Enter"
    58. Private Sub ComboBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)
    59. If e.KeyCode = Keys.Enter Then
    60. WebBrowser1.Navigate(ComboBox1.Text)
    61. End If
    62. End Sub
    63. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    64. GetAktiverBrowser()
    65. ComboBox1.Text = AktiverBrowser.Url.ToString
    66. End Sub
    67. End Class


    Das Problem liegt hier:

    VB.NET-Quellcode

    1. Private Sub TabSchließenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabSchließenToolStripMenuItem.Click
    2. Me.TabControl1.TabPages.Remove(Me.TabControl1.SelectedTab)
    3. End Sub

    Hier bekomme ich immer die Fehlermeldung "NullReferenceException wurde nicht behandelt. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

    Was muss ich tun?

    Vorher hatte ich probleme da hier

    VB.NET-Quellcode

    1. Private Sub BrowserFertig()
    2. If Not AktiverBrowser.DocumentTitle.ToString = Nothing Then
    3. Me.TabControl1.SelectedTab.Text = AktiverBrowser.DocumentTitle
    4. End If
    5. End Sub


    die selbe Fehlermeldung kam. Jedoch änderte ich das einzige TextBox1 (welches ich gar nicht in meiner Form habe :whistling: ) und ersetzte dies mit der vorhandenen ComboBox1. Jetzt war der Fehler weg. Aber der obrige da. Was würdet ihr mir empfehlen?

    Danke für jede konstruktive Hilfe
    PNGamingPower

    VB.NET-Quellcode

    1. Try
    2. Me.TabControl1.TabPages.Remove(Me.TabControl1.SelectedTab)
    3. If SelectedTabIndex < Me.TabControl1.TabCount Then
    4. Me.TabControl1.SelectedIndex = SelectedTabIndex
    5. Else
    6. Me.TabControl1.SelectedIndex = SelectedTabIndex - 1
    7. End If
    8. getaktiverbrowser()
    9. Catch
    10. addtab("Fehler", "about:blank")
    11. End Try


    Denke das hilft dir ;)