本文介绍了C#System.InvalidCastException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



  System.InvalidCastException未被用户代码
消息=指定的转换无效。
Source = System.Windows.Forms
StackTrace:
在System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
在System.Windows.Forms.WebBrowser.get_Document( )
在System.Windows.Forms.WebBrowser.get_DocumentStream()
在System.Windows.Forms.WebBrowser.get_DocumentText()
在SiteBot.MainWindow.backgroundWorker1_DoWork(对象发件人,DoWorkEventArgs e)在D:\Documents\Visual Studio 2010\Projects\SiteBot\MainWindow.cs:line 35
在System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
在System.ComponentModel。 BackgroundWorker.WorkerThreadStart(Object argument)
InnerException:


解决方案

p>以下解决了你的十字线问题。

  public delegate string GetStringHandler(); 
public string GetDocumentText()
{
if(InvokeRequired)
返回Invoke(新的GetStringHandler(GetDocumentText))作为字符串;
else
return webBrowser.DocumentText;
}

if(regAddId.IsMatch(GetDocumentText()))
{
}


Why I'm getting this error?

System.InvalidCastException was unhandled by user code
  Message=Specified cast is not valid.
  Source=System.Windows.Forms
  StackTrace:
       at System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
       at System.Windows.Forms.WebBrowser.get_Document()
       at System.Windows.Forms.WebBrowser.get_DocumentStream()
       at System.Windows.Forms.WebBrowser.get_DocumentText()
       at SiteBot.MainWindow.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e) in D:\Documents\Visual Studio 2010\Projects\SiteBot\MainWindow.cs:line 35
       at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
       at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
  InnerException: 
解决方案

The following solves your cross thread issue.

public delegate string GetStringHandler();
public string GetDocumentText()
{
    if (InvokeRequired)
        return Invoke(new GetStringHandler(GetDocumentText)) as string;
    else
        return webBrowser.DocumentText;
}

if (regAddId.IsMatch(GetDocumentText()))
{
}

这篇关于C#System.InvalidCastException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 20:39