解决方案 »

  1.   

    某些页面 webBrowser1_DocumentCompleted 可能会被执行多次。
    你直接 webBrowser1.Document.Click+=new HtmlElementEventHandler(Document_Click); 这样监听事件,每一次都会添加一次,当然就会点一次多次执行了。你应该写成
    webBrowser1.Document.Click-=new HtmlElementEventHandler(Document_Click);
    webBrowser1.Document.Click+=new HtmlElementEventHandler(Document_Click);
    先删除监听,然后再重新监听。
    还有办法就是判断 DocumentCompleted事件执行时的 Document状态是不是已经完成。
    private void Browser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
    {
                WebBrowser browser = sender as WebBrowser;
                if (browser.ReadyState < System.Windows.Forms.WebBrowserReadyState.Complete)
                    return;
                webBrowser1.Document.Click+=new HtmlElementEventHandler(Document_Click);
    }点击事件是不是被执行多次,不是因为你有没有阻止冒泡。而是你添加了多次事件监听。