2013-04-12 4 views
0

Im тихий новый для vb.net, и я пытаюсь создать специальную систему, когда пользователь закрывает форму. Для моей системы я хотел бы поднять событие FormClosing вручную.VB.NET - Вручную повышать событие FormClosing

-> Итак: Как я могу поднять событие FormClosing из где-нибудь в коде?

Info: Форма появляется как «ShowDialog».

Спасибо!

+0

Почему бы просто не назвать 'Close' на форме? – sloth

+0

Конечно! Слишком легко подумать. Знаете ли вы ответ на комментарий? 2 в ответе Стива? – hark

ответ

1

Чтобы вручную ввести событие FormClosing, вы вызываете метод Close(), используя экземпляр формы для закрытия.

Это означает, что ваш вызов Close() должен быть выполнен из показанной формы, потому что вы использовали ShowDialog(). Этот метод является модальным и не возвращает управление до тех пор, пока форма не будет закрыта.

Событие FormClosing принимает параметр FormClosingEventArgs, где вы можете найти свойство CloseReason. Это свойство представляет собой перечисление, в котором вы можете проверить причину закрытия события.

Если причина UserClosing, то вы можете установить свойство Cancel из FormClosingEventArgs истина (оставляя форму открытой) и вызвать у вас есть процедура

+0

Большое спасибо! Мышление, чтобы усложнить, просто мешает мне найти этот простой ответ. – hark

+0

Может быть, вы знаете, как отменить стандартное событие FormClosing из X-Button формы и связать какое-то пользовательское событие? – hark

+0

Не было прямого восстановления, но обходной путь можно было бы разработать. Проверьте обновленный ответ – Steve