Я некоторое время искал способы открыть вторую форму из другой уже показанной формы.
Это некоторый фрагмент кода, который работает:
frmSecond second = new frmSecond();
this.Hide();
second.ShowDialog();
this.Close();
Что он делаетв основном это Hide()
текущая открытая форма, затем она открывает другую форму (метод ShowDialog()
).Close()
скрытая в настоящий момент форма будет закрыта только тогда, когда только что созданная вами форма будет закрыта.
Проблема здесь в следующем: при таком способе создается огромный поток форм.Если мне нужно перейти с frmSecond
на frmThird
, он сохранит первую форму и frmSecond
, выполняемую в фоновом режиме, при этом отображается только frmThird
.
Тогда, когда frmThird
открыто, если мне нужно вернуться к первой форме, я бы использовал некоторый код вроде:
frmFirst first = new frmFirst();
this.Hide();
first.ShowDialog();
this.Close();
И он создал бы еще frmFirst
!Тогда у нас будет три формы, выполняемые в фоновом режиме (первая frmFirst
, frmSecond
и frmThird
).
Этот метод работает, но использует все больше и больше памяти для обработки, которая может бытьнаносит ущерб любому проекту.
Есть ли альтернатива или дополнение, чтобы исправить эту проблему?
Если что-то неясно, пожалуйста, не дайте мне знать.Спасибо.