使用 Threading 的 C# Web 浏览器中 HTML 元素的属性



我正在使用 C# 在 Windows 窗体中制作 Web 浏览器,我可以通过单击按钮自动设置加载的 HTML 输入字段的值。 当我简单地将代码放在按钮的单击事件中时,它工作正常'

private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("username").SetAttribute("value","admin");
webBrowser1.Document.GetElementById("password").SetAttribute("value","12345");

}`

但是当我尝试通过线程执行此操作时,它会给我错误

指定的强制转换无效?

private void button1_Click(object sender, EventArgs e)
{
Thread thread1 = new Thread(new ThreadStart(setvalues));
thread1.Start();

}
void setvalues() 
{
webBrowser1.Document.GetElementById("username").SetAttribute("value","admin");
webBrowser1.Document.GetElementById("password").SetAttribute("value","12345");
Thread.Sleep(8000);
}
}

我在代码中哪里出错了? 任何错误? 我是初学者,我需要帮助

不能在单独的线程中访问窗体控件。在setvalues()试试这个:

Invoke((Action)(() => {
webBrowser1.Document.GetElementById("username").SetAttribute("value","admin"); 
webBrowser1.Document.GetElementById("password").SetAttribute("value","12345");
}));

相关内容

  • 没有找到相关文章

最新更新