Я делаю веб-браузер в форме Windows, используя C#, где я могу автоматически устанавливать значения загруженных полей ввода html, нажав кнопку. когда я просто помещаю код в событие нажатия кнопки, он работает нормально.
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("username").SetAttribute("value","admin");
webBrowser1.Document.GetElementById("password").SetAttribute("value","12345");
}`
но когда я пытаюсь сделать это с помощью потоковой передачи, это дает мне ошибку
Specified cast is not valid?
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);
}
}
где я делаю ошибку в коде? какая-нибудь ошибка? я новичок, мне нужна помощь
@mxmissile я использую C# Visual Basic 2010
Какой веб-фреймворк? asp.net? ядро asp.net? Откуда берется webBrowser1
?
@mxmissile я использую форму Windows C#, я просто перетаскиваю веб-браузер из панели инструментов в Visual Studio
Вы не можете получить доступ к элементам управления форм в отдельном потоке. Попробуйте это в setvalues()
:
Invoke((Action)(() => {
webBrowser1.Document.GetElementById("username").SetAttribute("value","admin");
webBrowser1.Document.GetElementById("password").SetAttribute("value","12345");
}));
at Invoke (() => дает мне ошибку Невозможно преобразовать лямбда-выражение в тип System Delegate, потому что это не тип делегата
теперь он работает, вы можете сказать мне, как обновить любую веб-страницу в webbrowser1 с помощью кода?
Вы, вероятно, захотите задать для этого новый Вопрос. Больше разоблачения.
Вы жаднее до положительных оценок, чем учите новичков? хорошо
ха-ха, нет, у вас будет больше внимания, и у вас будет больше репутации, и именно так работает StackOverlfow ... :-)
Это неправда, научиться может любой! Отличное начало, если вы уже имеете дело с потоками! :-)
Отметьте это тем, какой веб-фреймворк C# вы используете.