Событие Activate происходит, когда объект становится активным окном. А становится активным окном он может в двух случаях. Это в результате Show, когда форма становится видимой на экране и в результате получения фокуса. Событие Deactivate (Деактивизация) происходит, когда объект более не является активным окном. Эти события генерируются только при переключении между окнами одного приложения. Если вы перейдете в другую программу и вернетесь в Excel, то эти события не будут сгенерированы.
Событие QueryClose
Это событие генерируется для того, чтобы получить у пользователя разрешение на закрытие формы. В зависимости от кода возврата форма закрывается или нет.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then Cancel = 1
UserForm1.Caption = "Close не будет работать. Выберите меня!"
End IF
End Sub
Событие Unload
Нет его, точно так же как и Load, а вообще используется, если надо что-либо делать при выгрузке формы, например сохранить настройки пользователя.
Событие Terminate
Данное событие происходит, когда все ссылки на экземпляр объекта удаляются из памяти с помощью присвоения всем переменным, которые ссылаются на данный объект, состояния Nothing или когда последняя ссылка на объект выходит за пределы области определения. Это событие идет вслед за Unload.
|
|
Шаг 55 - Четыре основных метода работы с формой (Load,Unload,Show,Hide)
Давайте сформулируем краткие описания и после этого посмотрим как они взаимодействуют:
Load - загрузка формы в память
Unload - выгрузка формы из памяти
Show - показ формы на экране
Hide - спрятать форму
Мы помним, что Show может сам вызвать Load, но если форма загружена, то Load не будет вызываться. Поэтому просто надо делать так:
Начало работы
Load
Конец работы
Unload
Показывать или прятать форму можно с помощью Show и Hide. Но, если Вы проводите в методе Initialize настройку переменных, то будьте уверены, что она будет происходить при загрузке в момент вызова Load.
Вот типовые коды:
Load
Load UserForm
Unload
Unload UserForm
Из формы
Unload Me
Hide
UserForm.Hide
Из формы
Me.Hide
Show
UserForm.Show