2010-11-07 15 views

Respuesta

11

Mediante el uso de un temporizador, por supuesto. Por ejemplo:

public void NavigateTo(Uri url) { 
     webBrowser1.Navigate(url); 
     timer1.Enabled = true; 
    } 

    private void timer1_Tick(object sender, EventArgs e) { 
     timer1.Enabled = false; 
     MessageBox.Show("Timeout on navigation"); 
    } 

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { 
     if (e.Url == webBrowser1.Url && timer1.Enabled) { 
      timer1.Enabled = false; 
      // etc.. 
     } 
    } 
+0

No que esperar a que el WebBrowser para la navegación completa en realidad antes de cancelar, en lugar de acabar con ella después de una cierta cantidad de ¿hora? –

+2

Erm, no. No hay nada para terminar Solo navega en otro lado. –

+1

así que cuando el temporizador marque voy a navegar a otro lugar? – MonsterMMORPG

0

estoy usando siguiente enfoque basado en Navigating y Navigated eventos. El tiempo entre estos dos eventos se observa para redirigir a pgae hogareño.

 //Navigation Timer 
     timer2.Enabled = true; 
     timer2.Interval = 30000; 

     br.DocumentCompleted += browser_DocumentCompleted; 
     br.DocumentCompleted += writeToTextBoxEvent; 
     br.Navigating += OnNavigating; 
     br.Navigated += OnNavigated; 

     br.ScriptErrorsSuppressed = true; 
     br.Navigate(ConfigValues.websiteUrl); 

    private void OnNavigating(object sender, WebBrowserNavigatingEventArgs e) 
    { 
     //Reset Timer 
     timer2.Stop(); 
     timer2.Start(); 

     WriteLogFunction("OnNavigating||||||"+e.Url.ToString()); 
    } 

    private void OnNavigated(object sender, WebBrowserNavigatedEventArgs e) 
    { 
     //Stop Timer 
     timer2.Stop(); 

     WriteLogFunction("NAVIGATED <><><><><><><> " + e.Url.ToString()); 
    } 


    private void timer2_Tick(object sender, EventArgs e) 
    { 
     WriteLogFunction(" Navigation Timeout TICK"); 
     br.Stop(); 
     br.Navigate(ConfigValues.websiteUrl); 
    } 

Referencia

  1. Create a time-out for webbrowser loading method
  2. webbrowser timeout if page wont load
+0

Entonces, 'br.Stop()' hace que el control del navegador web deje de intentar navegar? – crush

Cuestiones relacionadas