因此,基本上,我试图从控制台applicaton触发WebBrowser的RaiseEvent,但它不起作用。在WinForms项目中,它运作良好,所以我只是想知道要使其在控制台应用程序中工作必须做些什么。这有可能吗?
这就是我为WB创建线程的方式
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效果很好,所以对我来说有点奇怪。
答案 0 :(得分:0)
您应该使用InvokeMember()
的{{1}}方法:
HtmlElement