我写了个方法getlink(),要加载指定的url后,得到页面的相关链接,然后再根据这个链接访问该页,在另一页又得到链接后,继续访问,就是这样的一个递归程序,本来是很好写的.
可是getlink()里用到了webbrowser.document,而这document里内容必须在DocumentCompleted事件完成之后里面才有内容。这样一来就麻烦了,有没有什么办法在getlink()里判断该文档是不是加载完成,没完成就等,完成了就做相关的事,类似ajax里的异步请求一样。有没有人知道该怎么做?在此先谢了。

解决方案 »

  1.   

    在getlink()用到了Navigate()方法后,然后等待DocumentCompleted事件完成,然后继续做
      

  2.   

    我想了个方法就是等待5秒后再运行 wbPhoto=new WebBrowser();
              
                wbPhoto.Navigate(url);
                Thread.Sleep(5000);
    HtmlElementCollection links = wbPhoto.Document.Links;
    可是这样还是不行,还是报错,wbPhoto.Document里仍然是null没有内容
      

  3.   

    webBrowser1.Navigate("www.17173.com");
                while (webBrowser1.IsBusy)
                {
                    Application.DoEvents();
                }
                while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
                HtmlElementCollection links = webBrowser1.Document.Links;