
Перед закрытием формы вызывается виртуальный метод Form.OnClosing() с параметром типа CancelEventArgs. Для отмены закрытия формы нужно переопределить метод Form.OnClosing() в классе наследнике и в его теле выставить в true свойство Cancel. Например, я хотел обепечить что бы пользователь не мог закрыть форму, пока идет длительный процесс поиска, запущенный в отдельном потоке:
protected override void OnClosing(CancelEventArgs e) { base.OnClosing(e); if (_manager.OptFinder.Status == OptFinderStatuses.Looking) { e.Cancel = true; MessageBox.Show("Нельзя закрыть форму пока идет процесс поиска!"); } }