Как запустить 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");
Другие вопросы по тегам