Foros del Web » Programación para mayores de 30 ;) » .NET »

La visualización del WebBrowser se escapa del Form

Estas en el tema de La visualización del WebBrowser se escapa del Form en el foro de .NET en Foros del Web. Estoy usando un WebBrowser control (AxSHDocVw.AxWebBrowser) en un proyecto VB.Net 2003, el cual uso para leer offline un archivo HTML generado en disco. Este archivo ...
  #1 (permalink)  
Antiguo 02/12/2009, 09:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Exclamación La visualización del WebBrowser se escapa del Form

Estoy usando un WebBrowser control (AxSHDocVw.AxWebBrowser) en un proyecto VB.Net 2003, el cual uso para leer offline un archivo HTML generado en disco. Este archivo contiene javascript que permite visualizar un mapa de GoogleMap.
Cuando el From se carga inicialmente se visualiza todo perfectamente (adjunto imagen), pero en cuanto se le indica refrescar el form, el área de navegador se escapa del form y queda fuera, aunque conteniendo perfectamente la página.

No he encontrado, luego de 4 días, ninguna documentación que hable de esto, ni siquiera la página de MSDN (http://msdn.microsoft.com/en-us/libr...85(VS.85).aspx), y toda búsqueda en Google ha sido infuctuosa.

Me resulta crítico el problema porque dos Forms usan este control y en los dos se manifiesta el mismo problema, por lo que se me hace imprescindible resolverlo.

¿Alguien ha visto este error, o sabe cómo resolverlo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 17/02/2010 a las 19:37
  #2 (permalink)  
Antiguo 05/12/2009, 07:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: La visualización del WebBrowser se escapa del Form

Bueno, pondré la resolución del problema, ya que el asunto parece haber sido demasiado raro y nadie encontró una solución mejor.

El problema parece producirse cuando un control del WebBrowser está en un formulario que en lugar de cerrarse (.Close()), se oculta (.Hide()).
Si se ha enviado a leer un html, sea local u on-line, el servicio queda activo después de ocultar el formulario, y busca representar en pantalla el contenido. Para lograrlo "desengancha" los recursos visuales del control y los ejecuta directamente en un thread, posicionando la página en un área de la pantalla desde las coordenadas 0,0.
La única solución es destruir el contenedor cerrando el formulario, previo liberar los recursos del WebBrowser. Yo supongo que esto es lo que hacen los browsers cuando operan con múltiples solapas: las destruyen, por lo que no tienen ese problema.

Así pues la solución es que, en el caso de crear una aplicación que tenga formularios hijos que son creados una sola vez y ocultados durante el uso, si un formulario contiene un WebBrowser, este debe ser instanciado cada vez que se invoca y destruido al terminar el uso, lo que implica que la variable que lo referencia puede ser global, pero no debe ser instanciado sino hasta el momento en que se usa.

¿Se entiende bien la idea?

Espero que sirva a otras personas....
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:42.