2010-08-05 1 views
1

J'ai un WebBrowser, une case à cocher, un bouton et le code suivant:WebBrowserNavigatingEventArgs.Cancel ne fonctionne pas sur WebBrowser.Navigating?

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"); 
    } 
} 

Ainsi, après avoir cliqué sur button1 et va les résultats de Google que je vérifie le checkBox1 afin qu'il doit annuler. Cela fonctionne pour certains liens, mais il n'annule pas la navigation lorsque je clique sur "Suivant" ou "Précédent" ou sur l'une des pages de résultats en bas. Vous pouvez le tester vous-même. Voici la documentation pour le WebBrowserNavigatingEventArgs. La question est de savoir quel est le problème avec mon code et comment puis-je obtenir le WebBrowser pour annuler la navigation pour chaque lien. Je vous remercie.

Répondre

0

En supposant que le gestionnaire d'événements est correctement connecté, cela devrait fonctionner (cela a certainement été le cas pour moi).

La première chose à faire est de s'assurer que webBrowser1_Navigating est appelée - mettez un point d'arrêt dessus.

+0

déjà vérifié. Il est appelé. Êtes-vous sûr que cela a fonctionné pour vous? Avez-vous essayé de cliquer sur les liens "Suivant" ou "Précédent" sur google? – Juan

+0

Eh bien, eh bien ... Je viens de l'essayer à nouveau et cela a juste fonctionné. Bizarre. Je te tiendrai au courant... – Juan

Questions connexes