none
Cerrar todos los formularios abiertos y mostrar Login. RRS feed

  • Pregunta

  • Hola.

    Quiero lograr que cuando se cierre el formulario principal (frmPrincipal) se cierren todos los formularios que estén abiertos y mostrar el Login (frmLogin) que está oculto.

    Tengo este código en el evento FormClosing, pero no funciona.

      foreach (Form f in Application.OpenForms)
                {
                    if (f.Name != "frmLogin" & f.Name != "frmPrincipal")
                        f.Close();
                }
    
     Form frm = Application.OpenForms.Cast<Form>().FirstOrDefault(x => x is frmLogin);
    
                if (frm != null)
                    frm.Show();


    Antonio Mata

    domingo, 18 de noviembre de 2018 22:33

Respuestas

Todas las respuestas

  • hola

    no se como implementas el login y los demas forms, pero se supone que esto lo deberias realizar desde el Main()

    Login – Usando Password con Hash

    como explico en el articulo

    Ahora bien ara reiniciar la app podrias usar el

    Application.Restart();

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de noviembre de 2018 23:22
  • Hola Leandro,

    El Formulario de Login es que se carga al inicio por defecto.

     Application.Run(new frmLogin());

    Cuando el usuario se autentica de forma adecuada, cargo el formulario principal de esta forma y escondo el formulario de Login:

    OpenForm.LoadForm<frmPrincipal>((frmPrincipal)frm, "frmPrincipal");

    //Form Login this.Hide();


    Ya en el formulario principal no he logrado que se cierren todos los formularios abiertos. Intenté usar

    Application.Restart()

    , pero esto me genere una nueva instancia del programa y no quiero provocar eso.


    Antonio Mata

    lunes, 19 de noviembre de 2018 0:24