0

我正在使用webBrowser 控件来显示网页。在创建 webBrowser 时,我可以更改预定义标签的值。我的问题是,timer_tick我想更改相同的标签值。这是我的代码

if (currentlyRunningObject.Equals(webBrowser1))
{
     Application.DoEvents();
     HtmlElement test = webBrowser1.Document.All["test"];
     test.InnerHtml = "mmmmmmmm";
}

timer_tick我做了同样的事情,但是VS在完成最后一行执行后停止了调试。

4

2 回答 2

0

计时器的滴答声在线程池线程中触发。您必须使用 webBrowser1调用任何代码以将其编组到 UI 线程或使用SynchronizationClass来执行相同的操作。

Action a = () => 
{
     HtmlElement test = webBrowser1.Document.All["test"];
     test.InnerHtml = "mmmmmmmm";
};
webBrowser1.Invoke(a);
于 2013-01-28T09:06:52.040 回答
0

在这里找到解决方案是计时器滴答中的代码

webBrowser1.Invoke(new ThreadStart(delegate
                    {
                        Application.DoEvents();
                        HtmlElement token2 = webBrowser1.Document.All["token2"];
                        //MessageBox.Show(token2.InnerHtml);
                        token2.InnerHtml = currentToken;
                    }));
于 2013-01-29T13:20:33.573 回答