等待WebBrowser完成进程

时间:2011-09-03 20:02:43

标签: c# winforms webbrowser-control

在继续之前等待浏览器完成流程的代码的最佳方法是什么?我在下面尝试了这个代码,并且在处理下一个链接之前,该过程不会等到它完成。

    void WaitBrowserLoading()
    {
        while (webBrowser1.IsBusy)
            Application.DoEvents();
        for (int i = 0; i < 500; i++)
            if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
                lblStoreID.Text = "";
                //System.Threading.Thread.Sleep(5);
            }
            else
                break;
        Application.DoEvents();
    }

1 个答案:

答案 0 :(得分:0)

NavigatedDocumentCompleted事件是否符合您的要求?我怀疑后者更适合你:

  

处理DocumentCompleted事件以在新文档完成加载时接收通知。发生DocumentCompleted事件时,新文档已完全加载,这意味着您可以通过Document,DocumentText或DocumentStream属性访问其内容。

基本上你在导航之前禁用所有控件(或任何你想要“停止”的东西),然后在事件触发时重新启用它们。