Как запустить WebBrowser RaiseEvent в консольном приложении C#?
В общем, я пытаюсь запустить RaiseEvent WebBrowser из консольного приложения, но он не работает. В проекте WinForms это работает хорошо, поэтому мне просто интересно, что мне нужно сделать, чтобы это работало в консольном приложении. Это вообще возможно?
Вот так я создаю тему для моего ВБ
private static Thread runBrowserThread(int mCandidatePosition)
{
var wbThread = new Thread(() => {
mClient = new WebClient();
mainWebBrowser.ScriptErrorsSuppressed = true;
mainWebBrowser.AllowNavigation = true;
mainWebBrowser.DocumentCompleted += MainWebBrowser_DocumentCompleted;
mainWebBrowser.Navigate(new Uri(xxx));
Application.Run();
});
wbThread.SetApartmentState(ApartmentState.STA);
return wbThread;
}
и вот как я пытаюсь это сделать:
HtmlElement selectType = gDoc.GetElementById("xxx");
selectType.RaiseEvent("onchange");
Приведенный выше код хорошо работает в проекте WinForms, но в консольном приложении ничего не происходит. Кроме того, InvokeScript работает хорошо, так что это немного странно для меня.
1 ответ
Вы должны использовать InvokeMember()
метод HtmlElement
:
HtmlElement selectType = gDoc.GetElementById("xxx");
selectType.InvokeMember("change");