Abrir un segundo form y cerrar el actual

10/10/2005 - 12:01 por Baldor | Informe spam
¿se puede hacer? Debería ser sencillo pero no lo consigo.

Si declaro el form2 local en el form1, al cerrar el form1, se termina la
aplicación.
Pero si lo declaro como publico en un modulo, pasa exactamente lo mismo.

Quiero hacer algo como esto:


frmB = New frmPaso2
frmB.Show()
Me.Close()


Donde Me seria el frmA o frmPaso1. Lo que ocurre es que al hacer Me.Close,
la aplicación termina y se cierra tanto el frmA como el frmB recien
mostrado.

¿Como se debe hacer para que funcione?
 

Leer las respuestas

#1 SoftJaén
10/10/2005 - 13:45 | Informe spam
"Baldor"escribió:

Si declaro el form2 local en el form1, al cerrar el form1, se termina la
aplicación.
Pero si lo declaro como publico en un modulo, pasa exactamente
lo mismo.



Hola:

Eso es así porque seguramente tendrás establecido a Form1 como el formulario
de inicio de la aplicación, y al cerrar dicho formulario de inicio, se
cierran automáticamente todos los formularios que tengas abiertos,
finalizando la aplicación.


Quiero hacer algo como esto:

frmB = New frmPaso2
frmB.Show()
Me.Close()


Donde Me seria el frmA o frmPaso1. Lo que ocurre es que al hacer Me.Close,
la aplicación termina y se cierra tanto el frmA como el frmB recien
mostrado. ¿Como se debe hacer para que funcione?



Al mostrar de manera NO MODAL el formulario B, el código seguirá
ejecutándose y se cerrará el formulario de inicio, con lo que la aplicación
finalizará. Para evitar esa circunstancia, por ejemplo, podrías mostrar el
segundo formulario de manera MODAL, y en lugar de cerrar el primer
formulario, lo dejarías oculto o no visible, restaurándolo nuevamente cuando
se cierre el segundo formulario:

Private Sub Button1_Click (...) Handles Button1.Click

' Ocultamos el formulario inicial
Me.Visible = False

' Mostramos el segundo formulario de manera modal
Dim frmB As New Form2
frmB.ShowDialog()

' Una vez que se cierre el segundo formulario,
' volvemos a visualizar el primer formulario
Me.Visible = True

End Sub

De todas maneras, si tu intención es trabajar con varios formularios
independientes, lo mismo te puede ser útil el usar un formulario MDI que sea
el formulario inicial de la aplicación, y posteriormente mostrar como
formularios modales los restantes formularios de la aplicación. Por
supuesto, al cerrar el formulario inicial MDI, se cerrarán todos los
formularios NO MODALES que actualmente se encuentren activos.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares