1

我想通过使用 webbrowser 对象以编程方式登录到另一个网站,所以我的项目中有一个 webbrowser 对象。问题是每次将其导航到任何地址时,其“文档”属性始终保持为空,因此 DocumentCompleted 事件永远不会触发。示例代码如下。你能给点建议吗?提前致谢。

    private WebBrowser browser;

    protected void Page_Load(object sender, EventArgs e)
    {
        var t = new Thread(CreateBrowser);
        t.SetApartmentState(ApartmentState.STA);
        t.Start();

    }

    private void CreateBrowser()
    {
        browser = new WebBrowser();
        browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted);
        browser.Navigate("http://www.google.com");

    }
4

1 回答 1

0

您需要在创建 的实例的新线程上使用消息循环WebBrowser,这对于WebBrowser控制正常工作和触发事件至关重要。就是Application.Run这样。这是如何完成的一个很好的例子。

于 2013-10-24T22:44:27.430 回答