在VS2013中使用C#编写winform程序,如何让webbrowser加载完成之后执行后续语句

我的方法是判断webbrowser的readytstate是否为Complete,代码:

                    while (true)
                    {
                        if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
                        { break; }
                    }

但是单线程程序加载网页就不能执行循环,执行循环就不能加载网页,所以程序就一直死在while循环上,用进程暂停就停掉了整个进程,王爷爷不加载了。现在相求一个解决办法

2个回答

现在的网页,使用ajax的方式加载,也就是说WebBrowserReadyState.Complete后,其实网页还在加载,不能这么判断,应该判断网页中特定的元素是否存在。

很简单,用多线程即可。
最简单做法,你用一个Timer控件,在Timer的循环里写:
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
{
timer1.enabled=false;
//其他处理
}
不太知道你要做什么,如果是等加载完网页再做一些事的话,这么做毫无意义。对应的Html页面的JS里写也页面加载后的事件也是完全可以的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问