【问题标题】:Webbrowser control document_completed fires more than onceWebbrowser 控件 document_completed 多次触发
【发布时间】:2010-08-07 17:55:29
【问题描述】:

document_complete 事件多次触发。这并不是那么糟糕。但是我正在导航的网址永远不会完全加载。它会被触发 2/3 次。

这是我的 document_completed 事件:

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (e.Url.AbsolutePath != this.wbrowser.Url.AbsolutePath) 
        return;
    else
        string doctext = this.wbrowser.DocumentText;
}

我做错了什么?

【问题讨论】:

    标签: c# events webbrowser-control


    【解决方案1】:

    每个帧/iframe 将获得一个 DocumentCompleted 事件,这就是为什么会有多个事件。如果您没有得到最后一个,那是因为某些资源仍在加载或挂起。它可以是图像、脚本文件或某些 iframe。

    您最好的解决方案是添加一个超时,如果您收到最后一个 DocumentCompleted 事件,或者您的超时开始,则继续您的程序。

    【讨论】:

    • 那个计时器应该是什么样子的?我刚刚尝试了一个 while 循环来检查 bool 是否为真。我也在 document_completed 事件中得到了这个布尔值。但它永远不会成为现实。
    • 没关系,我添加了一个额外的布尔值来检查我们是否正在导航。在没有导航到 url 的情况下,它在 while 循环中变得非常快。现在它首先检查我们是否正在导航。这奏效了。谢谢!
    • 你能分享一下你是如何实现解决方案的
    猜你喜欢
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 2010-10-15
    • 1970-01-01
    • 2011-03-26
    • 2012-12-16
    • 2012-12-10
    相关资源
    最近更新 更多