Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отмена закрытия Child окна MDI приложения / 2 сообщений из 2, страница 1 из 1
02.03.2013, 13:34
    #38171928
Vanovich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отмена закрытия Child окна MDI приложения
Обнаружил непонятное поведение приложения:

Имеется объект ChildForm
В его обработчике закрытия формы

private void ChildForm_FormClosing(object sender, FormClosingEventArgs e)
{
// Отменяем закрытие формы и делаем ее невидимой
MessageBox.Show("Canceled");
e.Cancel = true;
this.Hide();
}

Так вот, если этот объект является дочерним для другой формы, то вызов из другой формы:

ChildForm.Close(); - сгенерирует сообщение "Canceled", все нормально, форма прячется.
но если еще раз вызвать ChildForm.Close(); - сообщения не будет и форма уничтожится...(IsDisposed = true)

Мало того, если объект ChildForm - не дочерний для какой-нибудь формы ParentForm (ChildForm.MdiParent = ParentForm)
а самостояельная форма - то хоть сколько вызывай ChildFrom.Close() - сообщение будет появляться всегда и разрушения формы не происходит.
Объясните, пожалуйста, почему так происходит..
...
Рейтинг: 0 / 0
04.03.2013, 08:38
    #38172872
sld
sld
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отмена закрытия Child окна MDI приложения
видимо когда форма скрыта событие FormClosing не работает. проверь в отладчике.
а перед ChildFrom.Close() проверяй что ChildFrom visible.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отмена закрытия Child окна MDI приложения / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]