|
Обеспечение корректной выгрузки формы |
|
|
Форма позволяет поместить весь код для проверки выгрузки в одном месте – неважно, происходит ли это в результате выполнения метода Unload, щелчка по значку Х, выбора пункта Close из системного меню или даже нажатия Alt+F4. Событие, позволяющее перехватить любую попытку закрыть форму, называется QueryUnload.
Событие QueryUnload вызывается при любой попытке выгрузить форму – из программы или как-нибудь иначе. Это событие передает обработчику информацию о том, по какой причине закрывается форма. Если вам интересно знать, каким образом была инициирована выгрузка формы, вы можете проверить значение параметра UnloadMode.
Значение
UnloadMode |
Причина закрытия
формы |
vbFormControlMenu |
Пользователь выбрал команду Close
из системного меню окна формы |
vbFormCode |
В программе вызван метод Unload |
vbAppWindows |
Идет процесс завершения работы Windows |
vbAppTaskManager |
Менеджер задач закрывает
приложение |
vbFormMDIForm |
Форма, вложенная в многодокументную
(MDI) форму, закрывается, поскольку
закрывается родительская форма |
Если вы хотите каждый раз узнавать, по какой причине закрывается форма, можно поместить в обработчик события QueryUnload код, проверяющий все возможные значения параметра UnloadMode. Взгляните на следующий пример. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Select Case UnloadMode
Case vbFormControlMenu
MsgBox "Выгрузка формы из системного меню или кнопкой Х."
Case vbFormCode
MsgBox "Выгрузка из кода."
Case vbAppWindows
MsgBox "Windows заканчивает свою работу."
Case vbAppTaskManager
MsgBox "Выгрузка из менеджера задач."
Case vbFormMDIForm
MsgBox "Выгружается MDI форма."
End Select
End Sub
|
|
|
|
|
|
|