none
Consulta hide RRS feed

  • Pregunta

  • Hola, yo tengo dos formularios conectados: uno es el de inicio de sesion y otro es "principal". Cuando se valida usuario y contraseña, uso hide para ocultar el form inicio de sesion y un show para mostrar el principal. El problema viene cuando yo cierro el principal, la aplicacion no se cierra, queda corriendo y el inicio sesion esta corriendo. Alguno conoce alguna forma de parar este problema? Seria de mucha ayuda. Gracias
    domingo, 23 de septiembre de 2018 21:55

Respuestas

  • Buenas,

    Eso pasa porque el form de inicio sigue abierto (y es el que tienes puesto como principal según entiendo).

    Tienes varias maneras de solucionar el tema, una es llamando a 

    Application.Exit();


    desde el evento closing de tu formulario principal.

    Otro es utilizando 

    foreach (var form in Application.OpenForms.Cast<Form>())
        form.Close();

    para iterar todos los formularios abiertos que tienes e ir cerrándolos uno a uno.

    Otra opción es buscar el formulario abierto de tipo login y cerrarlo:

    foreach (var form in Application.OpenForms.OfType<TuLoginForm>())
        form.Close();

    O por ultimo de todo, pasando un puntero a tu login en el constructor de tu formulario principal, aunque con eso vas a tener un fuerte acoplamiento entre clases.

    Si tienes dudas nos comentas

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub
    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo RubioModerator lunes, 24 de septiembre de 2018 14:54
    • Marcado como respuesta Lucas Ca lunes, 24 de septiembre de 2018 23:15
    lunes, 24 de septiembre de 2018 11:25

Todas las respuestas

  • Buenas,

    Eso pasa porque el form de inicio sigue abierto (y es el que tienes puesto como principal según entiendo).

    Tienes varias maneras de solucionar el tema, una es llamando a 

    Application.Exit();


    desde el evento closing de tu formulario principal.

    Otro es utilizando 

    foreach (var form in Application.OpenForms.Cast<Form>())
        form.Close();

    para iterar todos los formularios abiertos que tienes e ir cerrándolos uno a uno.

    Otra opción es buscar el formulario abierto de tipo login y cerrarlo:

    foreach (var form in Application.OpenForms.OfType<TuLoginForm>())
        form.Close();

    O por ultimo de todo, pasando un puntero a tu login en el constructor de tu formulario principal, aunque con eso vas a tener un fuerte acoplamiento entre clases.

    Si tienes dudas nos comentas

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub
    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    • Propuesto como respuesta Pablo RubioModerator lunes, 24 de septiembre de 2018 14:54
    • Marcado como respuesta Lucas Ca lunes, 24 de septiembre de 2018 23:15
    lunes, 24 de septiembre de 2018 11:25
  • Muchisimas gracias por tomarte el tiempo para responder. Me parecio una muy buena estrategia la que planteaste. Un saludo
    lunes, 24 de septiembre de 2018 23:16
  • Muchisimas gracias por tomarte el tiempo para responder.
    lunes, 24 de septiembre de 2018 23:17