我正在使用 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");
}));