Abrir un formulario y cerrar otro

28/11/2006 - 18:03 por ANT1 | Informe spam
Hola de nuevo a todos.

Tengo una duda que no se como se resolveria.

Mi caso es el siguiente: tengo dos formularios el "LogIn" y el
"Iniciar". En el LogIn pido el nombre de usuario y password y miro a
ver si son correctos y de serlo sencillamente abro el formulario
"Iniciar" y me gustaria cerrar el "LogIn". Pero como lo estoy haciendo
ahora si cierro el LogIn se me cierra tb el "Iniciar".

Una vez comprobado el usuario y password lo que hago es lo siguiente:

// Cargo el nuevo formulario
Iniciar nuevo = new Iniciar();
nuevo.Show();
// Cierro la ventana de log in
this.Dispose();
this.Close();

¿Que hago mal o como se haria?, ¿tendria que ocultar y kitar del
taskbar al LogIn para que no se viese por ningun sitio?

Gracias a todos

Preguntas similare

Leer las respuestas

#1 Roberto M. Oliva
28/11/2006 - 18:37 | Informe spam
Hola!

Yo lo que haria es que la aplicacion arrancase con una funcion Main (es
facil implementarla, haces una funcion estatica y en las propiedades
del proyecto le dices que arranque con esa
funcion.http://www.elguille.info/colabora/N...arp002.htm)

Luego, dentro de esa funcion Main lo pones asi:

static void Main(string[] args)
{
Login log = new Login();
if (log.ShowDialog() == DialogResult.Ok)
{
Iniciar nuevo = new Iniciar();
nuevo.ShowDialog();
}
}

Lo que te esta pasando es que la variable nuevo es local a la funcion
del objeto Login. Si cierras el objeto Login (> this.Dispose();>
this.Close();) te estas cargando las variables locales.

Espero que te ayude
Saludos
Roberto M. Oliva




ANT1 ha escrito:

Hola de nuevo a todos.

Tengo una duda que no se como se resolveria.

Mi caso es el siguiente: tengo dos formularios el "LogIn" y el
"Iniciar". En el LogIn pido el nombre de usuario y password y miro a
ver si son correctos y de serlo sencillamente abro el formulario
"Iniciar" y me gustaria cerrar el "LogIn". Pero como lo estoy haciendo
ahora si cierro el LogIn se me cierra tb el "Iniciar".

Una vez comprobado el usuario y password lo que hago es lo siguiente:

// Cargo el nuevo formulario
Iniciar nuevo = new Iniciar();
nuevo.Show();
// Cierro la ventana de log in
this.Dispose();
this.Close();

¿Que hago mal o como se haria?, ¿tendria que ocultar y kitar del
taskbar al LogIn para que no se viese por ningun sitio?

Gracias a todos
Respuesta Responder a este mensaje
#2 Alberto Poblacion
28/11/2006 - 18:40 | Informe spam
"ANT1" wrote in message
news:
Pero como lo estoy haciendo
ahora si cierro el LogIn se me cierra tb el "Iniciar".



Probablemente has marcado como formulario de inicio el de "Login". Cuando
heces eso, el VIsual Studio escribe un Main() (el auténtico punto de inicio
del programa) y dentro del Main mete Application.Run(formularioLogin). El
Application.Run tiene la peculiaridad de que cierra la aplicación (y por lo
tanto todos los formularios abiertos) cuando se cierra el formulario que has
puesto dentro del Run. Si estas usando VS2005, el Main está dentro del
archivo program.cs.
Puedes modificar el Main, haciendo desde ahi el Show() de tu formulario
de login, o puedes hacer un Hide en lugar de un Close y dejar el formulario
cargado en memoria.
Respuesta Responder a este mensaje
#3 ANT1
29/11/2006 - 10:09 | Informe spam
Gracias, he hecho lo que me habeis dicho y me funciona correctamente.

Solamente me keda una duda: el formulario Inicio lo ejecuto como
ShowDialog(), ¿Cuando cierre ese formulario terminaria el proceso main
y por tanto se cerraria la aplicacion o tengo que hacer algo mas?. Por
lo que conozco yo de programacion si se cerraria, pero prefiero estar
seguro.
Respuesta Responder a este mensaje
#4 Roberto M. Oliva
29/11/2006 - 11:41 | Informe spam
Hola!

Si lo haces dentro de la funcion Main, cuando termine dicha funcion se
termina el programa.
Si entre medias, como te he dicho, muestras los formularios con
ShowDialog, estos "retienen" el flujo del programa y hasta que no se
cierra la ventana, no devuelven el control a la funcion main.
Cuando abres un formulario con ShowDialog lo estas abriendo en modo
modal, que quiere decir que retiene el foco de la aplicacion y no
puedes hacer nada mas en la aplicacion hasta que no cierres dicho
cuadro de dialogo.

Espero haberme expresado bien
Un saludo
Roberto M. Oliva


ANT1 ha escrito:

Gracias, he hecho lo que me habeis dicho y me funciona correctamente.

Solamente me keda una duda: el formulario Inicio lo ejecuto como
ShowDialog(), ¿Cuando cierre ese formulario terminaria el proceso main
y por tanto se cerraria la aplicacion o tengo que hacer algo mas?. Por
lo que conozco yo de programacion si se cerraria, pero prefiero estar
seguro.
Respuesta Responder a este mensaje
#5 ANT1
29/11/2006 - 13:30 | Informe spam
Gracias Roberto, te has expresado bien.

Es lo que yo creia pero queria asegurarme de que no dejaba ningun
proceso parasito tras cerrar la aplicacion.

Gracias por todo, y espero que este mensaje se actualice que uno que
mande antes nunca llego.

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida