Con
este ejemplo vamos a darle solución, partiendo que tenemos un formulario padre
y dos hijos de los cuales uno va a ser oculto momentáneamente, pero no queremos
inicializarlo nuevamente para no “perder” los datos que están en sus controles.
Para nuestro formulario múltiple
tenemos estas líneas de código que genera muchas veces el mismo formulario y no
tiene un mayor efecto que marcar una diferencia con nuestro formulario
controlado.
Creamos un proyecto con
un formulario principal que va ser nuestro padre o nuestra interfaz de múltiples
documentos, en el cual tenemos dos formularios uno que va a ser declarado nuevo
cada vez que se presione el botón, y otro que va a tener dos estados en el botón
que lo llama, si no está abierto, lo crea nuevo, pero si está oculto lo permite
ver y si está abierto y visible lo cierra.
Para el trabajo con nuestro formulario “único”, tenemos que entender que es lo que hace Hide(), este método oculta el control del usuario seria un equivalente a la propiedad visible = false, pero haciendo referencia a un método no a una propiedad, su contrario sería show().
Si se tiene ya iniciado el formulario y no está oculto (Hide) lo que
hace es que lo cierra, para que pueda ser nuevamente llamado como uno nuevo,
pero esto implica que todos los datos que están en los controles y no han sido
guardados en ningún storage apropiado se perderán, para saber si esta creado nos podemos
ayudar de la propiedad isHandlecreated, esta propiedad es un booleano, así que
nos devuelve o una respuesta positiva (true) o una negativa (false), lo que nos
dice es que si ha sido asociado algún manejador, si ya fueron creados todos sus
eventos, y esta activo, cuando la respuesta es positiva se cierra nuestro
formulario.
Así obtenemos un formulario padre y dos hijos con
distinta formas de llamarlos y visualizarlos.
Descargar Fuente
Saludos y Gracias.
JamC.







Que es "unic" en tu codigo? Podrias subir la fuente de nuevo? Link caido!
ResponderEliminar