猿问

C#中如何自动检查webbrowser文档加载完毕

C# winform 窗体上有三个控件 两个button(button1和button2)和一个webbrowser,我在button1中检测webbroser加载文档是否完毕,如果完毕则点击button2,否则等待 webbrowser1加载完毕,这个逻辑应该怎么表达呢

我目前是这样搞的


在button1_click函数中
webBrowser1.Navigate(s);
                   while(webBrowser1.ReadyState!=WebBrowserReadyState.Complete)
                   {


                   };
                   btnNextPage_Click(null, null);
结果发现的问题是,函数死循环在while语句


慕哥6287543
浏览 670回答 2
2回答

当年话下

 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)        {            button2_Click(button2, null);        }        private void button1_Click(object sender, EventArgs e)        {            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)            {                button2_Click(button2, null);            }            else            {                webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);            }        }

慕妹3146593

当然会是死循环,因为webbrowser加载有一个过程,你在button1的事件中去检查永远不会完成,因为这时候是还在服务器post当中。你要在客户端判断!就像判断ajax请求状态那样。
随时随地看视频慕课网APP
我要回答