2012-04-25 22 views
6

Estoy usando un WebBrowser de C# para mostrar un diálogo de inicio de sesión de Facebook para mi aplicación de escritorio. Me vuelvo a registrar en el evento WebBrowser.DocumentCompleted, y una vez que obtengo la URL que espero, detengo WebBrowser y cierro el diálogo.Detener un WebBrowser hace que se abra Internet Explorer

Por alguna razón, después de cerrar el cuadro de diálogo, Internet Explorer se abre de repente.

Solo puedo suponer que abre IE (que por cierto, ni siquiera es mi navegador predeterminado) porque el servidor web devuelve la página, y mi WebBrowser ya se ha ido. Es ese el caso? ¿Alguna idea de cómo prevenirlo?

Gracias!

Editar: Cuando cierro WebBrowser, ya contiene el HTML que se muestra en el IE.

+1

ocúltalas C# navegador web por un corto tiempo después de recibir la URL a continuación, cerrarla. –

+0

@Carl Gracias, eso funciona bien, pero si hay una manera de evitar el comportamiento extraño sin esperar, eso sería aún mejor :) – Mobe

+0

El código en la parte inferior de esta página http://msdn.microsoft.com/en- us/library/system.windows.forms.webbrowser.documentcompleted.aspx mite le da algunos consejos. Parecen llamar a Dispose en el control del navegador. –

Respuesta

3

Si se trata de una ventana emergente. ¿Por qué no solo manejar el evento? Podrías hacer algo como esto.

{... 
    WebBrowser wb = new WebBrowser(); 
    wb.NewWindow += new System.ComponentModel.CancelEventHandler(wb_NewWindow); 
} 

void wb_NewWindow(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    e.Cancel = true; 
} 
0

Esto se debe a que la página no se cargó correctamente. Tal vez algún script no puede ser ejecutado por el navegador. Antes de cerrar WebBrowser o Form, donde webBrowser es, abra la "página cero". Do:

WebBrowser.url = new URl("about:blank"); 

formulario y luego cerrar, cerrar o disponer del navegador ....

Cuestiones relacionadas