Я звоню во второй экземпляр формы нажатием кнопки из первой формы.Во второй форме есть исключение SqlException, которое выдает ошибку, если имя пользователя и пароль из первой формы неверны.Если SqlException находит ошибку, он закрывает вторую форму и открывает обратно первую форму.Проблема заключается в том, что вторая форма остается в памяти, и если пользователь вводит неправильное имя пользователя и пароль 100 раз, 100 экземпляров второй формы останутся в памяти, и использование памяти будет только накапливаться.У меня также есть кнопка во второй форме, которая возвращает вас в первую форму, и я думаю, что то же самое происходит и там.
Мой код для переключения между формами:
//first form called FormLogin
public FormLogin()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
var nextForm = new Form1();
nextForm.ShowDialog();
nextForm.Activate();
nextForm.Show();
}
//SqlException in the second form called Form1
public Form1()
{
InitializeComponent();
}
catch (SqlException ex)
{
//MessageBox.Show(ex.Message);
//var backtologin = new FormLogin();
//backtologin.Show();
//backtologin.Activate();
this.Hide();
MessageBox.Show(ex.Message,"Incorrect password, or missing permission!");
FormLogin login = new FormLogin();
login.ShowDialog();
login.Activate();
this.Close();
}
//second form button for going back to the first form
private void logout_Click(object sender, EventArgs e)
{
this.Hide();
FormLogin login2 = new FormLogin();
login2.ShowDialog();
login2.Activate();
this.Close();
}