Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > Отменить закрытие окна |
Автор: DEER 15.8.2006, 09:58 |
Что то нигде не нашел как это сделать. Хочу до начала закрытия окна, спросить у юзера о сохранинии, ставил код в деструктор, но он срабатывает когда уже окно закрылось, и если юзер нажмет Cancel, то никак не получается отменить закрытие окна. Есть ли событие, которое возникает до начала закрытия формы, или хотя бы во время закрытия ?? Добавлено @ 10:05 так.. у формы оказывается есть событие closing.. тогда все просто.... а вот если это не форма, а UserControl?? тогда никак не отловишь закрытие? |
Автор: ivashkanet 15.8.2006, 10:16 | ||
Тебе нужно событие Form.Closing. И поле его аргумента e.Cancel Незакрываемая форма (как ни странно (шутка ![]()
|
Автор: DEER 15.8.2006, 10:25 | ||
да, спасибо, с этим разобрался... а с контролом. Получается, нужно делать публичный метод у контрола, который и будет спрашивать у юзера... и если нажали Cancel, то метод вернёт false, тогда в форме пишем
|
Автор: arilou 15.8.2006, 22:59 |
А что, разве из ЮзерКонтрола нельзя подписаться на Form.Closing ? ![]() |
Автор: mr.DUDA 16.8.2006, 09:19 |
Можно, хоть его IntelliSence и не показывает ![]() - во-первых, нужно найти форму (не факт, что контрол находится на форме, а не внутри др. контрола), методом FindForm() - во-вторых, делать это можно только начиная с метода OnLoad (в конструкторе нельзя, т.к. контрол ещё не добавлен на форму) - в Design Mode формы может не быть, значит нужна проверка на null Конечно, правильнее подписываться на событие, но проще объявить паблик-метод и дёргать его из формы. ![]() |
Автор: engaged 22.4.2008, 21:28 |
а на Delphi можно ли отменить закрытие окна? |
Автор: amarenkov 23.4.2008, 08:26 | ||
И на Delphi можно:
|