从计时器更改 Web 浏览器的标签内容
本文关键字:标签 浏览器 Web 计时器 | 更新日期: 2023-09-27 17:56:12
我正在使用webBrowser控件来显示网页。在创建网络浏览器时,我可以更改预定义标签的值。我的问题是,在timer_tick
中我想更改相同的标签值。这是我的代码
if (currentlyRunningObject.Equals(webBrowser1))
{
Application.DoEvents();
HtmlElement test = webBrowser1.Document.All["test"];
test.InnerHtml = "mmmmmmmm";
}
在timer_tick
我做了同样的事情,但 VS 在完成最后一行执行后停止调试。
计时器
的时钟周期在线程池线程中触发。您必须使用 webBrowser1 调用任何代码以将其编送到 UI 线程,或使用 SynchronizationClass 执行相同的操作。
Action a = () =>
{
HtmlElement test = webBrowser1.Document.All["test"];
test.InnerHtml = "mmmmmmmm";
};
webBrowser1.Invoke(a);
在这里找到解决方案是计时器滴答中的代码
webBrowser1.Invoke(new ThreadStart(delegate
{
Application.DoEvents();
HtmlElement token2 = webBrowser1.Document.All["token2"];
//MessageBox.Show(token2.InnerHtml);
token2.InnerHtml = currentToken;
}));