WebBrowser控件永远不会触发DocumentCompleted事件

时间:2016-03-24 18:15:57

标签: c# .net

我在Windows窗体应用程序中有以下代码但web_DocumentCompleted事件永远不会在我的Windows 10机器上触发

困扰我的是,如果我编译并在我的VPS(Windows服务器2012R2)或安装了Windows 8.1的计算机上运行它,相同的代码就可以正常运行。

所有计算机都安装了Internet Explorer 11。

public Form1()
{
    InitializeComponent();

    //Web Browser control
    this.web.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(web_DocumentCompleted);

    this.web.Navigate(URL);
}

void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    //or any other code
     MessageBox.Show("Done");  

}

我已按照this link的建议尝试删除更新KB3132372,但它没有帮助。

为什么此代码在Windows 8.1或Windows Server 2012上运行正常,但它不能在两台单独的Windows 10计算机上运行?

1 个答案:

答案 0 :(得分:-1)

我有同样的问题。当ReadyState == WebBrowserReadyState.Complete时,永远不会调用DocumentCompleted事件。

我遇到的问题是,除非创建主体,否则无法调用“ Document.Body.KeyDown”事件。它是在文档完成时创建的。

我发现的黑客行为是创建一个while循环并执行“ Application.DoEvents()”,直到“ ReadyState == WebBrowserReadyState.Complete”。之后,您可以确定文档已完成。