WebBrowserNavigatingEventArgs.Cancel无法在WebBrowser.Navigating上工作?

时间:2010-08-05 20:05:36

标签: c# .net

我有一个WebBrowser,一个复选框,一个按钮和以下代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
    }

    void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
        if(checkBox1.Checked) e.Cancel = true;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        webBrowser1.Navigate("http://www.google.com/#hl=en&q=hi&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=9cebbf5a0cce78cd");
    }
}

因此,在点击button1并转到Google结果后,我会检查checkBox1以便它取消。它适用于某些链接,但当我点击“下一步”或“上一页”或底部的任何结果页面时,它不会取消导航。你可以自己测试一下。这是WebBrowserNavigatingEventArgs的文档。问题是我的代码有什么问题,我如何让WebBrowser取消每个链接的导航。谢谢。

1 个答案:

答案 0 :(得分:0)

假设事件处理程序已正确连接,应该可以正常工作(这对我来说确实如此)。

要做的第一件事是确保调用webBrowser1_Navigating - 在其上设置一个断点。