Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/12/2009, 07:09
Avatar de gnzsoloyo
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, 6 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)