我正在使用 webBrowser控件来显示网页。在创建webBrowser时,我可以更改预定义标记的值。我的问题是在timer_tick
中我想要更改相同的标记值。这是我的代码
if (currentlyRunningObject.Equals(webBrowser1))
{
Application.DoEvents();
HtmlElement test = webBrowser1.Document.All["test"];
test.InnerHtml = "mmmmmmmm";
}
在timer_tick
我做了同样的事情,但 VS在完成最后一行执行后停止了调试。
答案 0 :(得分:0)
计时器的标记在线程池线程中触发。您必须使用webBrowser1 Invoke任何代码将其编组到UI线程或使用SynchronizationClass执行相同操作。
Action a = () =>
{
HtmlElement test = webBrowser1.Document.All["test"];
test.InnerHtml = "mmmmmmmm";
};
webBrowser1.Invoke(a);
答案 1 :(得分:0)
在这里找到解决方案是计时器滴答中的代码
webBrowser1.Invoke(new ThreadStart(delegate
{
Application.DoEvents();
HtmlElement token2 = webBrowser1.Document.All["token2"];
//MessageBox.Show(token2.InnerHtml);
token2.InnerHtml = currentToken;
}));