Иногда при создание Windows Forms приложения требуется скрывать окно, когда пользователь его закрывает. Действие по умолчанию - это закрытие окна. При этом высвобождаются все ресурсы и доступ к данном окну после его закрытия приведет к ошибке.
Для того чтобы скрывать окно без его уничтожения нужно подписаться на событие FormClosing и написать там следующее:
1
2
3
4
5
private void MainWindow_FormClosing(object sender, FormClosingEventArgs e)
{
Hide();
e.Cancel = true;
}
При закрытие пользователем окна оно будет сохранено в памяти и его можно будет повторно отобразить на экране.
Будьте внимательны, если это главное окно приложения, т.е. при его закрытии приложение продолжит работать и станет невидимо для пользователя. Тем не менее оно будет расходовать ресурсы системы.
Комментарии
mrdekk, 14 сент. 2011, 01:31
Есть еще один способ — установить свойство HideOnClose в true и эффект будет примерно таким же. В чем разница?
FiloXSee, 15 сент. 2011, 11:32
Разница в том, что свойства HideOnClose нет в System.Windows.Forms.Form. Ты путаешь с окнами, которые наследуются от класса DockContent сборки WeifenLuo.WinFormsUI.Docking.
mrdekk, 15 сент. 2011, 20:05
Хм, да действительно путаю.