2

是否有任何事情会等待事件发生(我正在等待的是 WebBrowser.DocumentCompleted),然后执行代码?像这样的东西:

如果(WebBrowser.DocumentCompleted)

将不起作用,因为如果它返回 false,它只会跳过代码。

4

3 回答 3

5

您是否考虑订阅WebBrowser.DocumentCompleted事件?

webBrowser1.Navigate("http://www.stackoverflow.com/");
webBrowser1.DocumentCompleted += (sender, args) =>
{
    //process web page
};
//keep on processing asynchronously here... (if you want :-p)
于 2013-07-26T02:57:22.957 回答
4

您必须绑定到事件:

WebBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;

...

private WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Respond to the event
}

延伸阅读:

于 2013-07-26T02:57:43.637 回答
0

根据您的要求,在我看来,根据条件有两种解决此问题的可能性:

  1. 注册DocumentCompleted事件并使用WebBrowser_DocumentCompleted事件处理程序来处理您计划执行的内容。这段代码将等到文档没有完全加载。

  2. 如果您使用Timer类进行连续轮询,您应该查看WebBrowser.IsBusy属性。如果它是的,则文档已完成加载。Timer但是,如果您有事件的设施,这将不是使用类的好方法 DocumentCompleted。如果你使用这种方法改变它。

于 2013-07-26T03:16:11.720 回答