Manteniendo una aplicación Round 1
Descripción:
Imagínate que acabas de de llegar al trabajo y te dicen que el error que descubriste ayer tiene que ser solucionado de una manera lo mas genérica posible y “ensuciando” lo menos posible el código. El escenario con el que tienes que lidiar es el siguiente:
Independientemente de la calidad de dicho diseño del que podremos hablar también en otra ocasión, hay que meter la consabida modificación para que el usuario nos invite a un cafecito. ¿Por donde empezamos a meter mano?
1º Aproximación:
Lo primero que intente, en vista del diseño, fue meterle mano al control. En el VisibleChanged dependiendo del valor de la propiedad Visible quitaba o ponía el AxWebBrowser en la colección de controles de ControlwebBrowser. El problema es como detectar que el Form se oculta.
Pero antes de resolver este problema pensemos en si esto es correcto o no. Desde el punto de vista del programador usuario del control es de esperar que el control funcione bien. Independientemente de que lo incluyamos en un MDI o no. Tampoco sabe si mi control contiene un AxWebBrowser y por tanto aun conociendo el fallo no esperara este comportamiento y le será muy complicado llegar a esta conclusión. Por tanto parece evidente que es el propio control el que debe incluir el código que corrija dicho bug.
Por favor dad vuestra opinión al respecto en los comentarios.
Volviendo al problema de detectar el cierre del formulario… otra ñapa… se me ocurre suscribirnos al VisibleChanged del formulario contenedor e implementar la solución. Desde el punto de vista del diseñador del control este no debería dar por hecho nada que este fuera de el. Inclusos poniéndonos paranoicos… ¿Qué pasaría si cambiáramos el formulario contenedor del control? ¿Cómo controlamos esto?
Bueno de momento esta solución es admisible pero no me deja del todo contento. ¿Se os ocurre alguna idea?






