Webbrowser 请求加载页面,页面中包含各种资源,不能够很准确的判断加载是否完成,需要通过特定的方法判断。
1、使用计数器判断页面是否加载完成。精准可控。
//计数器 int counter = 0; //添加事件响应函数 this .webBrowser.Navigated += newSystem.Windows.Forms.WebBrowserNavigatedEventHandler(webBrowser_Navigated); this .webBrowser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler( this.webBrowser_DocumentCompleted); //事件响应函数 private void webBrowser_Navigated( objectsender, WebBrowserNavigatedEventArgs e) { counter ++; } private void webBrowser_DocumentCompleted( objectsender, WebBrowserDocumentCompletedEventArgs e) { counter --; if ( 0 ==counter) { //加载完毕 } }
在执行一个加载完成操作时,在执行完毕后最好立马注销事件。
2、通过控件状态及控件文档URL地址判断,此方法经实际测试,可满足大多数情况。简单。
this .webBrowser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler( this.webBrowser_DocumentCompleted); private void webBrowser_DocumentCompleted( objectsender, WebBrowserDocumentCompletedEventArgs e) { if (Browser.ReadyState == WebBrowserReadyState.Complete&&e.Url==webBrowser.Document.Url) { //加载完成 } }