C# WebBrowser.get_Document 指定的转换无效

.Net技术 码拜 10年前 (2014-12-29) 5364次浏览 0个评论

调用WebBrowser控件的Document 属性,代码如下:var document = _WebBrowser.Document;调用的时候抛出这样一个莫名其妙的异常” 指定的转换无效 “:

C# WebBrowser.get_Document 指定的转换无效

未处理 System.InvalidCastException
Message=” 指定的转换无效 。”
Source=”System.Windows.Forms”
StackTrace:
在 System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
在 System.Windows.Forms.WebBrowser.get_Document()
在 IPMessagerNet.UI.Controls.Chat.IEView.IETabPage.Commander_TextMessageReceived(Object sender, MessageEventArgs e)
在 System.EventHandler`1.Invoke(Object sender, TEventArgs e)
InnerException:

之前用着正常。于是查找最近修改的代码,终于找到原因:跨线程调用了(此代码段_WebBrowser.Document在另一个线程执行)。

简单来说,就是上面这个属性调用的时候不是主界面的线程,结果就报了那么一个莫名其妙的错误。

解决方法:将函数放在主线程调用。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# WebBrowser.get_Document 指定的转换无效
喜欢 (1)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!