本帖最后由 qq2593010346 于 2012-12-23 15:44:11 编辑

解决方案 »

  1.   

    debug时,webbrowser1.Document有没有报出异常?
      

  2.   

            private void aa(object obj)
            {
                Thread.Sleep(5000);
                string sourceStr = webBrowser1.Document.Body.InnerHtml.ToString();//指定的转换无效
            }应该是页面加载未完成。
      

  3.   

    页面加载完成,一样的问题。这里下载测试源码
    http://115.com/file/ckpu00uc谢谢。
      

  4.   

    不好意思,弄错了。应该是使用了ThreadPool的关系。坐等答案。
      

  5.   

    这里可以下载源码:
    http://www.baidupcs.com/file/df841710985cb0edc68327136bb5b04d?fid=1159790273-250528-662464897&time=1356256177&sign=FDTA-DCb740ccc5511e5e8fedcff06b081203-GYefH1yFrWcZuPawn6L0ejI%2B43c%3D&expires=1h
      

  6.   

    //// private void extendedWebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)        
    {            
        ThreadPool.QueueUserWorkItem(new WaitCallback(aa), sender);          
    }private void aa(object obj)        
    {
          var webBrowser = (WebBrowser)obj;
          if(webBrowser != null)
          {
               string sourceStr=webBrowser.Document.Body.InnerHtml;//指定的转换无效
           }       
    } ////
      

  7.   

    浅述WinForm多线程编程与Control.Invoke的应用
    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        ThreadPool.QueueUserWorkItem(new WaitCallback(this.GetDocHtml));
    }private void GetDocHtml(object o)
    {
        Func<string> f = new Func<string>(GetHtml);
        object html = this.Invoke(f);
        MessageBox.Show(html.ToString());
    }private string GetHtml()
    {
        return webBrowser1.Document.Body.InnerHtml;
    }