第二行代码在第一行C#之前执行

时间:2016-05-09 23:12:42

标签: c#

我正在使用以下代码。我想导航到一个网页,然后单击C#Web浏览器控件中的一个按钮。但是,即使在我可以导航到网页之前,也会调用click,从而导致null异常。

webBrowser1.Navigate("www.remaxit.com/members"); // way before this
deleted = true;
HtmlDocument doc = this.webBrowser1.Document;
doc.GetElementById("AddUser").InvokeMember("CLICK"); //This executes

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:11)

第一行执行,但是在运行其余代码之前它没有完成加载页面。

做更多的事情:

webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    HtmlDocument doc = this.webBrowser1.Document;
    doc.GetElementById("AddUser").InvokeMember("CLICK");
}

一旦页面加载完毕,这将触发您的代码。