WebBrowser.DocumentCompleted和Navigate - C#

时间:2018-02-23 10:40:42

标签: c# webbrowser-control

我试图修改一个使用WebBrowser项的简单应用程序:

private void button1_Click(object sender, EventArgs e)
{
  var menu = webBrowser1.Document.GetElementById("SomeItem").InvokeMember("click");
  webBrowser1.Visible = true;
  button1.Visible = false;
}

private void Form1_Load(object sender, EventArgs e)
{
  webBrowser1.Visible = false;
  webBrowser1.AllowNavigation = true;
  webBrowser1.Navigate("domain");
}

这样可以正常工作,页面加载然后点击按钮后用户被重定向到所需的位置。

现在我试图在没有按钮帮助的情况下做到这一点。 简单地将按钮代码放在加载函数中没有帮助,所以我在代码中引入了DocumentCompleted事件。

private void Form1_Load(object sender, EventArgs e)
    {
        webBrowser1.AllowNavigation = true;
        webBrowser1.Navigate("SomeDomain");
        webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentComplete);    
    }

 private void wb_DocumentComplete(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser wb = sender as WebBrowser;
        wb.Document.GetElementById("SomeItem").InvokeMember("click");
    }

通过调试它,我看到wb对象被"域"正确实例化了。但是当我尝试检索System.NullReferenceException时,我得到SomeItem

文档没有完全加载,因为我还在加载功能中?

0 个答案:

没有答案