等待WebBrowser完成进程

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

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(); } 

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

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

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