Abrir y Cerrar Formularios

25/05/2006 - 04:59 por Sergio | Informe spam
Estimados amigos, tengo la siguiente duda:

Tengo 2 formularios, uno principal que contiene un ABM y otro que contiene
una Consulta
del ABM.
En el formulario del ABM tengo un menu con la opcion SALIR ok?
Desde el formulario ABM llamo al formulario Consulta ok?.

Ahora bien la duda es la siguiente:

En el evento del menu SALIR puse Application.Exit()
En el formulario del ABM que es el principal en el evento Closing tambien
puse Application.Exit()
Llamo al formulario Consultar con frmConsultar.Show()
Estando en el formulario Consultar lo cierro con ME.Close()

Es correcto lo que use? o debo utilizar otro metodos?
Cuando aplico Appication.Exit() se cierra la aplicacion sacando los
formularios de memoria o queda
algo?

Les pregunto esto porque recien estoy aprendiendo y veo que hay metodos
Closing, Dispose, Hite
Activated, y no se cual es el mas conveniente.

Gracias
 

Leer las respuestas

#1 Luis Miguel Blanco
25/05/2006 - 08:57 | Informe spam
Hola Sergio

Cuando utilizas Application.Exit(), lo que ocurre en efecto es que se
cierran todas las ventanas de tu aplicación; termina de procesar los mensajes
que hubiera pendientes, pero tiene el inconveniente de que no se ejecutan los
eventos Closed() ni Closing() de los formularios, por lo que si tienes código
para realizar alguna operación en los mismos, no sería ejecutado.

Para cerrar un formulario, y en condiciones normales creo que lo mejor es
usar el método Close() del formulario, ya que este hacer que se ejecuten los
eventos adecuados en el proceso de cierre del mismo, en los cuales puedes
incluir tu propio código para realizar comprobaciones y validaciones varias,
previas al cierre.

Por otra parte los métodos y eventos que comentas al final de tu mensaje se
utilizan en función de lo que necesites en cada momento, no es obligatorio
codificarlos todos, sólo si necesitas controlar determinados sucesos que le
puedan ocurrir al formulario, o ejecutar determinada funcionalidad del mismo:

-Closing(): se ejecuta cuando al formulario se le ha dado orden de cierre, y
está a punto de cerrarse, pero todavía hay posibilidad de cancelar dicho
cierre. Es el método adecuado para preguntar al usuario si realmente quiere
cerrar la ventana.

-Activated(): se ejecuta cuando el formulario pasa a estar activo,
recibiendo el foco de entrada del teclado para que el usuario trabaje con él.
Aquí puedes poner código para configurar controles cuando el formulario
reciba el foco.

-Dispose(): es el método que se utiliza para liberar los recursos que pueda
estar utilizando el formulario y que sea conveniente que se utilicen el menos
tiempo posible porque puedan sobrecargar el sistema, por ejemplo,
manipuladores de ficheros abierto en modo exclusivo por el formulario para
leer/escribir información en ficheros.

-Hide(): te permite ocultar el formulario, teniendo en cuenta que no lo
destruyes, simplemente lo ocultas al usuario.

Bien, pues esto es todo, espero que esta información te sea de ayuda.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Sergio" wrote:

Estimados amigos, tengo la siguiente duda:

Tengo 2 formularios, uno principal que contiene un ABM y otro que contiene
una Consulta
del ABM.
En el formulario del ABM tengo un menu con la opcion SALIR ok?
Desde el formulario ABM llamo al formulario Consulta ok?.

Ahora bien la duda es la siguiente:

En el evento del menu SALIR puse Application.Exit()
En el formulario del ABM que es el principal en el evento Closing tambien
puse Application.Exit()
Llamo al formulario Consultar con frmConsultar.Show()
Estando en el formulario Consultar lo cierro con ME.Close()

Es correcto lo que use? o debo utilizar otro metodos?
Cuando aplico Appication.Exit() se cierra la aplicacion sacando los
formularios de memoria o queda
algo?

Les pregunto esto porque recien estoy aprendiendo y veo que hay metodos
Closing, Dispose, Hite
Activated, y no se cual es el mas conveniente.

Gracias

Preguntas similares