Предотвращение закрытия формы в C#

Закрытие формы Windows Forms

В платформе .NET Framework очень просто предотвратить закрытие форм. Сюда входит остановка закрытия приложения .NET с помощью клавиш Alt-F4.

Предотвращение закрытия приложения полезно, когда программисты хотят быть уверены, что приложение не закроется в середине какого-либо важного процесса.

Событие закрытия

Чтобы остановить закрытие формы, можно просто воспользоваться событием FormClosing. Объект аргументов события имеет свойство с именем Cancel. Установка свойства Cancel в значение true, как можно догадаться, отменяет процедуру закрытия формы.

Теперь, когда мы предотвратили закрытие формы, как нам ее закрыть? Обратите внимание, что такие команды, как this.Close() и Application.Exit не работают, когда выполняются внутри формы.

Решение состоит в сохранении логической переменной поля, которая даст нам знать, когда приложение "авторизовано" для закрытия. Таким образом, когда программист действительно хочет закрыть форму, переменная поля будет помечать событие, чтобы позволить выполниться процедуре закрытия.

Ограничения

Конечно, этот метод использует события Windows Forms для предотвращения закрытия приложения. Для приложений .NET, которые не используют Windows Forms, потребуется другой метод. Кроме того, этот метод не предотвращает удаление пользователем процесса приложения в диспетчере задач.