无法在winform中暂停webBrowser1_Navigating事件。 C#

时间:2013-04-20 17:18:45

标签: c# winforms webbrowser-control

我尝试在winform应用程序中的webbrowser控件中通过鼠标钩记录一些互联网活动。很少见到点击链接并且不记录该点击只是因为一切都发生得太快而我的代码在

public void WebBrowser1Document_Click(object sender, HtmlElementEventArgs e)
        {    
            tempHtmlElement = webBrowser1.Document.ActiveElement;
            ...

方法无法达到目的。在90%的记录发生但有一段时间它传递了webBrowser1_Navigating事件,因为我说过WebBrowser1Document_Click只是开始和webBrowser1.Document.ActiveElement休息。无论我有ActiveElement的变量,这个变量都无法访问某些属性,例如Name。所以我的问题是如何暂停webbrowser1活动直到记录。这是一个STA应用程序。

1 个答案:

答案 0 :(得分:1)

假设在Click方法完成之前发生导航,您可以通过棘手的方法暂停。使用全局变量CanNavigate。

bool canNavigate;
public void WebBrowser1Document_Click(object sender, HtmlElementEventArgs e)
        {    
            canNavigate=false;
            tempHtmlElement = webBrowser1.Document.ActiveElement;
            ...
            ...
            //At the End 
            canNavigate=true;
         }




    void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            do
            {
Application.DoEvents(); Thread.Sleep(100);

            } while (!canNavigate);
        }