2014-02-19 3 views
0

Я некоторое время искал какой-то код для этого, и я нашел пару. большинство из них не работало, но я пытаюсь заставить его работать.VB Clicked Links Open In New Tab

Private Sub WebBrowser1_NewWindow(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles WebBrowser1.NewWindow 
    'This creates a new tab 
    Dim tp As New TabPage 
    TabControl1.Controls.Add(tp) 

    'This creates a new webbrowser with the NewWindow Event 
    'And navigates it to the link wanting to be opened 
    Dim wb As New WebBrowser 
    Dim myElement As HtmlElement = WebBrowser1.Document.ActiveElement 
    Dim target As String = myElement.GetAttribute("href") 
    With wb 
     .Navigate(target) 
     .Dock = DockStyle.Fill 
    End With 

    AddHandler wb.NewWindow, AddressOf WebBrowser_NewWindow 

    tp.Controls.Add(wb) 

    'This prevents ie from popping up 
    e.Cancel = True 
End Sub 

Но тогда я получаю ошибку здесь WebBrowser_NewWindow, и когда я проверить и посмотреть, что он говорит, и я сказал WebBrowser_NewWindow Is Not Declared. It may be inaccessible due to protection level Как я должен это исправить?

Полный код

Public Class Form2 

    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Me.BringToFront() 
     WebBrowser1.Navigate("www.google.com") 
    End Sub 

    Private Sub IClarityButton2_Click_1(sender As Object, e As EventArgs) Handles IClarityButton2.Click 
     If TextBox2.Text = "Close" Then 
      End 
     Else 
      TextBox2.Text = "Invalid" 
     End If 
    End Sub 

    Private Sub WebBrowser1_NewWindow(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles WebBrowser1.NewWindow 
     'This creates a new tab 
     Dim tp As New TabPage 
     TabControl1.Controls.Add(tp) 

     'This creates a new webbrowser with the NewWindow Event 
     'And navigates it to the link wanting to be opened 
     Dim wb As New WebBrowser 
     Dim myElement As HtmlElement = WebBrowser1.Document.ActiveElement 
     Dim target As String = myElement.GetAttribute("href") 
     With wb 
      .Navigate(target) 
      .Dock = DockStyle.Fill 
     End With 

     'AddHandler wb.NewWindow, AddressOf WebBrowser_NewWindow 

     tp.Controls.Add(wb) 

     'This prevents ie from popping up 
     e.Cancel = True 
    End Sub 

End Class 
+1

'WebBrowser_NewWindow' является обработчиком для добавления нового окна в ВБ. Этот 'sub' существует в вашем коде? Просто удалите эту целую строку, если вы не хотите, чтобы действие возникало при добавлении новых окон. – TylerDurden

+0

Является ли обработчик в том же классе, что и объект, который запускает событие? –

+0

Я не понимаю, что вы имеете в виду. – user3329318

ответ

0

Попробуйте удалить AddHandler wb.NewWindow, AddressOf WebBrowser_NewWindow

+0

Он ничего не делает со ссылкой, если я удалю его. – user3329318

+0

Тогда вам нужно убедиться, что в вашем коде существует 'WebBrowser_NewWindow' и что он выполняет некоторую задачу при добавлении нового окна. – TylerDurden

+0

Но это находится в подменю WebBrowser1.NewWindow. Или это не так? – user3329318