我有一个webbrowser对象。 它做了很多工作,所以我经常遇到一个问题,即对象尚未加载,或者新请求尚未完成等等。
所以现在我正在使用这样的东西:
Thread.Sleep(n);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
// do stuff here
但正如已经提到的,我不喜欢它。这是非常不可靠的。加上线程被冻结。
我确定我已经在互联网上找到了类似于DownloadCompleteHandler的东西(不确定名称),它开始异步下载页面的过程,并且在完成之后 - 我可以调用另一个处理程序来告诉它下一步该怎么做。
但我再也找不到了。 如果有人可以提供帮助,那就太棒了。
答案 0 :(得分:4)
我认为您正在寻找DocumentCompleted事件。
当页面导航到并开始加载时,会调用Navigated事件,页面加载完成后会调用DocumentCompleted事件。
修改强>
回应您对问题的评论;你正在寻找ProgressChanged事件。
事实上,如果您只是阅读MSDN上的WebBrowser文档,它会更容易。在这个页面上有一个“事件”部分,列出了所有这些事件以及它们的用途。
答案 1 :(得分:0)
您也可以查看WatiN
public class IEWaitForComplete : WaitForCompleteBase