日期:2014-05-17  浏览次数:20983 次

指定的转换无效 的问题
本帖最后由 qq2593010346 于 2012-12-23 15:44:11 编辑
界面上有一个浏览器,通过以下语句会出现 "InvalidCastException 指定的转换无效" 错误




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

//
//





 百度后发现这类错误多是数据类型转换出问题,但上面的语句类型都是string 应该不会数据类型转换的问题啊

请教这是怎么回事情呢?






------解决方案--------------------
浅述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;
}