如何在控制台应用程序C#中触发WebBrowser RaiseEvent?

时间:2018-09-18 15:41:00

标签: c# winforms console-application webbrowser-control raiseevent

因此,基本上,我试图从控制台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效果很好,所以对我来说有点奇怪。

1 个答案:

答案 0 :(得分:0)

您应该使用InvokeMember()的{​​{1}}方法:

HtmlElement