是否有任何事情会等待事件发生(我正在等待的是 WebBrowser.DocumentCompleted),然后执行代码?像这样的东西:
如果(WebBrowser.DocumentCompleted)
将不起作用,因为如果它返回 false,它只会跳过代码。
您是否考虑订阅WebBrowser.DocumentCompleted事件?
webBrowser1.Navigate("http://www.stackoverflow.com/");
webBrowser1.DocumentCompleted += (sender, args) =>
{
//process web page
};
//keep on processing asynchronously here... (if you want :-p)
您必须绑定到事件:
WebBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;
...
private WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// Respond to the event
}
延伸阅读:
根据您的要求,在我看来,根据条件有两种解决此问题的可能性:
注册
DocumentCompleted
事件并使用WebBrowser_DocumentCompleted事件处理程序来处理您计划执行的内容。这段代码将等到文档没有完全加载。如果您使用
Timer
类进行连续轮询,您应该查看WebBrowser.IsBusy属性。如果它是假的,则文档已完成加载。Timer
但是,如果您有事件的设施,这将不是使用类的好方法DocumentCompleted
。如果你使用这种方法改变它。