我试图修改一个使用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
。
文档没有完全加载,因为我还在加载功能中?