![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
Что то нигде не нашел как это сделать.
Хочу до начала закрытия окна, спросить у юзера о сохранинии, ставил код в деструктор, но он срабатывает когда уже окно закрылось, и если юзер нажмет Cancel, то никак не получается отменить закрытие окна. Есть ли событие, которое возникает до начала закрытия формы, или хотя бы во время закрытия ?? Добавлено @ 10:05 так.. у формы оказывается есть событие closing.. тогда все просто.... а вот если это не форма, а UserControl?? тогда никак не отловишь закрытие? -------------------- |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
Тебе нужно событие Form.Closing. И поле его аргумента e.Cancel
Незакрываемая форма (как ни странно (шутка ![]()
|
|||
|
||||
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
да, спасибо, с этим разобрался...
а с контролом. Получается, нужно делать публичный метод у контрола, который и будет спрашивать у юзера... и если нажали Cancel, то метод вернёт false, тогда в форме пишем
-------------------- |
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
А как ты себе представляешь "закрытие юзерконтрола" ? ![]() Если нужно отловить закрытие формы с юзерконтрола, можно например поступить так: добавить свой public-метод OnClosing(CancelEventArgs e), который вызывать с формы в обработчике Form.Closing (форма уже знает о наличии этого метода). Пусть OnClosing у юзерконтрола выполняет все действия, связанные с закрытием родительской формы, и выставляет e.Cancel = true если форму закрывать нельзя. Добавлено @ 10:32
опередил ![]() -------------------- ![]() |
||||
|
|||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: нет Всего: 61 |
А что, разве из ЮзерКонтрола нельзя подписаться на Form.Closing ?
![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Можно, хоть его IntelliSence и не показывает ![]() - во-первых, нужно найти форму (не факт, что контрол находится на форме, а не внутри др. контрола), методом FindForm() - во-вторых, делать это можно только начиная с метода OnLoad (в конструкторе нельзя, т.к. контрол ещё не добавлен на форму) - в Design Mode формы может не быть, значит нужна проверка на null Конечно, правильнее подписываться на событие, но проще объявить паблик-метод и дёргать его из формы. ![]() -------------------- ![]() |
|||
|
||||
engaged |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
а на Delphi можно ли отменить закрытие окна?
|
|||
|
||||
amarenkov |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
И на Delphi можно:
Это сообщение отредактировал(а) amarenkov - 23.4.2008, 08:27 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |