О закрытии формы во время выполнения в C#
У меня есть две формы названы frmRegistration
& frmMain
в моем проекте в C#.
Я поставил frmRegistration
как моя стартовая форма.
Пользователь вводит данные в frmRegistration
Заполните форму и нажмите кнопку для регистрации. Затем я хочу закрыть frmRegistration
форма и шоу frmMain
Форма для пользователя.
Я пытаюсь это с помощью Dispose()
метод frmRegistration
, Но когда я использую этот метод, он избавляется от выполнения всех моих приложений, потому что frmRegistration
это форма запуска
Я не хочу, чтобы это случилось. Кто-нибудь может решить эту проблему?
Благодарю.
4 ответа
Использование Show()
а также Hide()
методы.
private void btnSubmit_Click(object sender, EventArgs e)
{
...
var frm = new frmMain();
frm.Location = this.Location;
frm.StartPosition = FormStartPosition.Manual;
frm.Show();
this.Hide();
}
ОБНОВИТЬ:
Если вы не хотите иметь frmRegistration в памяти, запустите вашу программу в основной форме и добавьте ее в свой MainForm Shown
событие:
var frm = new frmRegistration();
frm.Location = this.Location;
frm.StartPosition = FormStartPosition.Manual;
frm.FormClosing += delegate { this.Show(); };
frm.Show();
this.Hide();
Теперь вы можете просто закрыть регистрационную форму и автоматически вернуться в основную форму.
Попробуйте установить frmMain в качестве формы запуска и сначала скрыть ее, показать frmRegistration, сделать то, что вам нужно сделать, и утилизировать его.
Вы также можете изменить себя Program.cs
основной класс с Main()
функция для запуска frmRegistration
и после положительного DialogResult
или другая проверка потом начнется с frmMain
- как ваша основная форма и цикл сообщений.
По крайней мере, есть два варианта: 1. Превратить вашу форму запуска в единый объект. Когда вам нужно его скрыть, вызовите его метод hide.
2.Иметь новую форму запуска, назовите ее формой MainApp или чем-то еще, установите ее как невидимую, и вы сможете делать что угодно с другими не запускающимися формами.