Cómo implementar el formulario de inicio de sesión y el formulario principal sin más instancias en c #

Estoy creando una instancia en el formulario principal al hacer clic en el botón de inicio de sesión y nuevamente en crear el formulario de inicio de sesión en el botón de cerrar sesión. mi código es

      if ((txtUsrNm.Text == "Admin") && (txtPswd.Text == "Admin"))
        {
            mainForm mainFm = new mainForm();
            mainFm.userNam = txtUsrNm.Text;
            mainFm.pasWrd = txtPswd.Text;
            mainFm.Show();
            this.Hide();
        }
         else
        {
            MessageBox.Show("Invalid Username or Password.");
        }

y otra vez en el botón de cerrar sesión

        this.Hide();
        loginFrm lgn = new loginFrm();
        lgn.Show();

Si intento cerrar en lugar de Ocultar, se cierra toda la aplicación. Al hacer esta aplicación, el conteo de OpenForms aumenta en cada inicio de sesión y en las operaciones de cierre de sesión. Cómo implementar las operaciones de inicio y cierre de sesión en la aplicación de Windows. ¿Hay alguna otra idea para implementar esta operación? Agradeciendote

Respuestas a la pregunta(1)

Su respuesta a la pregunta