Как реализовать форму входа и основную форму без дополнительных экземпляров в C #

Я создаю экземпляр для главной формы при нажатии кнопки входа и снова создаю экземпляр для формы входа при нажатии кнопки выхода. мой код

      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.");
        }

и снова в кнопку выхода

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

Если я пытаюсь закрыть вместо Hide, все приложение закрывается. При этом число Application.OpenForms увеличивается при каждой операции входа в систему и выхода из нее. Как реализовать вход и выход из системы в приложении Windows. Есть ли другая идея для реализации этой операции. Благодарю вас