Como cerrar el startup object sin cerrar las demas ventanas

08/09/2004 - 04:31 por willy | Informe spam
Hola, les agradeceria mucho si me pueden ayudar con lo siguiente: Si tengo
un formulario como startup object y tengo dicho
formulario y otros mas abiertos ejecutandose, siendo que todos pertenecen a
mi proyecto, y cierro el formulario que es startup object, se me cierran
todos los demas formularios y se cierra la aplicación, y eso NO es lo que
quiero. Aquí pongo lo que estoy tratando de hacer y que en VB6 me funcionaba
sin problemas (claro, en vb6 no hubiera necesitado instanciar un formulario
para mostarlo):
Private Sub ButtonCerrarPrincipalyAbrirSiguiente_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles

ButtonCerrarPrincipalyAbrirSiguiente.Click

Dim formularionuevo As New OtroClaseDeFormulario
formularionuevo.Show()
Me.Close()
'siendo Me el formulario predeerminado para ser el startup object y
OtraClaseDeFormulario el nuevo que quiero abrir

End Sub
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
08/09/2004 - 06:27 | Informe spam
Inicia la aplicacion en un Sub Main en lugar de hacerlo directamente con un
formulario. En el sub Main puedes instanciar el primer formulario y luego
crear el bucle de mensajes sin ningun formulario asociado a este. Por
ejemplo:

Public Shared Sub main()
Dim f As New Form1
f.Show
Application.Run()
End Sub

De esta forma al cerrar el formulario la aplicacion no termina, pero cuidad
que la unica forma de cerrar la aplicacion, es decir que finalice el
proceso, es haciendo una llamada explicita a Application.Exit.

Tambien dependiendo del proposito del primer formulario puedes mostrarlo y
luego al ser este descargado cargar el otro como formulario principal (es
decir, el que controla el bucle de mensajes):

Public Shared Sub main()
Dim f As New LoginForm
If f.ShowDialog() = DialogResult.OK Then
Application.Run(New PrincipalForm)
End If
End Sub

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Preguntas similares