用C#的webBrowser导航一个首页。
填好资料后
……
btnEle.InvokeMember("click");
MessageBox.Show("");
while(IsBusy)//IsBusy在Navigating事件中修改。
{Application.DoEvents();}
……
大家可能奇怪为什么要MessageBox.Show("");
关键是我必须要这步操作,webBrowser才触发Navigating事件,我百思不得其解。
请教大大们,这问题已经困扰我三天了。
我分不多,先拜谢。
谁帮我解决此问题,我拜你做师傅了。
C#WebBrowserMessageBox

解决方案 »

  1.   

    While死循环,没有空闲给计算机干别的
      

  2.   

    把btnEle.InvokeMember("click");后面的都去掉就应该买有问题了吧。
      

  3.   

    后面想要执行的代码放到WebBrowser的documentcompleted事件中去。
      

  4.   


    谢谢你的回答。
    如果不用死循环,需要怎么去时刻判断IsBusy呢?
    而且我判断webbrowser是不是加载完毕的时候都是用的这个组合。
    谢谢。
      

  5.   


    谢谢boss。
    但现在问题是,我是一系列的自动化操作,页面中还存在ajax。
    每次加载ajax生成的代码都会去执行DocumengCompleted。
    所以在Navigating中加了一个判断加载完毕的IsBusy。
      

  6.   

    那就在Navigating中设置IsBusy的地方调用函数呗。
      

  7.   

    我大致明白了
    可以理解成UI线程和webbrowser加载的线程是俩线程。
    这边点击了,那边还没来的及加载。
    show的作用就是阻塞ui线程,让webbrowser有加载时间。
    谢谢大家。
    但是我还是不知道该怎么写。
    技术拙计。