.NET 2010中Control.Webbrowser的事件问题

.NET 2010中Control.Webbrowser的事件问题,.net,vb.net,visual-studio-2010,visual-studio,.net,Vb.net,Visual Studio 2010,Visual Studio,我的控制有问题。我无法检测何时完全加载(网页完全加载)。另一个问题是,当它更改网页时,会转到同一个事件,并且会产生很多错误,我无法控制它。 下面是产生问题的代码行 AddHandler browser.DocumentCompleted, AddressOf pageLoaded browser.Navigate("Web Address") 此处是其pageLoaded Sub: Private Sub pageLoaded(ByVal sender As Object, By

我的控制有问题。我无法检测何时完全加载(网页完全加载)。另一个问题是,当它更改网页时,会转到同一个事件,并且会产生很多错误,我无法控制它。 下面是产生问题的代码行

AddHandler browser.DocumentCompleted, AddressOf pageLoaded
    browser.Navigate("Web Address")
此处是其pageLoaded Sub:

   Private Sub pageLoaded(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) Handles browser.DocumentCompleted
    Dim autoHotkey As New Process()


    browser.Document.GetElementById("j_username").InnerText = "USER"
    browser.Document.GetElementById("j_password").InnerText = "PASS"
    browser.Document.GetElementById("loginbutton").InvokeMember("Click")
    System.Threading.Thread.Sleep(5000)
    MsgBox(My.Application.Info.DirectoryPath & "\aceptarAlerta.exe")
    autoHotkey.StartInfo.FileName = My.Application.Info.DirectoryPath & "\aceptarAlerta.exe"
    autoHotkey.Start()
    autoHotkey.Close()
    autoHotkey.Dispose()


End Sub
它总是不停地运行和出错,因为我更改了网页,它找不到这些id


谢谢你的帮助。

我用过这个,它很管用

Private Property paginaLista As Boolean = False
Private Sub WaitForPageLoad()
    AddHandler browser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
    While Not paginaLista
        Application.DoEvents()
    End While
    paginaLista = False
End Sub

Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
    If browser.ReadyState = WebBrowserReadyState.Complete Then
        paginaLista = True

        RemoveHandler browser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
    End If
End Sub