Joe*_*ani 2 c# browser winforms
我正在使用此代码来检查webBrowser1中的文本,尽管我收到错误"指定的强制转换无效".对string docText = webBrowser1.Document.Body.InnerText;.有什么想法吗?可能是因为我正在从另一个线程访问webBrowser吗?谢谢.
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string docText = webBrowser1.Document.Body.InnerText;
if (docText == "Hello")
{
MessageBox.Show("Alerted!");
}
}
private void timer1_Tick(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
Run Code Online (Sandbox Code Playgroud)
事实上,异常可能是从不是主UI线程的线程访问WebBrowser.Document属性引起的.您可以通过在堆栈跟踪中查找以下行来验证:System.InvalidCastException
System.Windows.Forms.WebBrowser.get_Document()
上的System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
如果是这种情况,请尝试将网页内容作为参数传递给后台线程:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
var docText = (string)e.Argument;
}
private void timer1_Tick(object sender, EventArgs e)
{
var docText = webBrowser1.Document.Body.InnerText;
backgroundWorker1.RunWorkerAsync(docText);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3884 次 |
| 最近记录: |