Как и для загрузки формы, для выгрузки формы из памяти используется не метод, я оператор Unload Formation.
Выгрузка формы удаляет ее и с экрана, если до этого форма была видима.
Если известно, что форма больше в программе не понадобится, замените метод Hide в процедурах обработки событий формы на оператор Unload. В этом случае оператор Unload Me эквивалентен оператору Unload имя_формы, поскольку ключевое слово Me представляет текущую форму.
Однако, в отличие от метода Hide, оператор Unload применим и к модальным формам, которые не присутствуют на экране. С помощью оператора Unl oad, размещенного в главной части программы (т.е. в процедуре, не связанной с формами), можно выгружать любые формы, в том числе и скрытые модальные формы.
Когда выполняется процедура типа Sub, не отображающая форм, ваш программный код полностью контролирует, что и когда делает программа. Но если на экране отображается форма, программа переходит в каком-то смысле в пассивное состояние, ожидая инструкций от пользователя.
После каждого нажатия клавиши, перемещения мыши или щелчка на кнопке генерируется программное событие. Ваша программа регистрирует каждое такое событие и проверяет, не содержит ли программный код формы процедуру, связанную с этим событием. Если подходящей процедуры нет, событие пройдет для программы бесследно. Но если форма имеет процедуру, соответствующую событию, то программа сразу же оживет и честно выполнит эту процедуру.
Процедура обработки события может делать все, что и любая другая процедура: вычислять значения переменных, манипулировать свойствами и методами объектов, загружать и отображать другие формы. После завершения выполнения процедуры обработки события контроль возвращается к форме. Программа перейдет в состояние ожидания следующего события.
Формы VBA и элементы управления в них могут распознавать самые различные события. (На жаргоне VBA, когда говорится, что объект "имеет" события, подразумевается, что объект может регистрировать и распознавать эти события.) У форм и элементов управления есть одинаковые события, но набор событий каждого объекта индивидуален. Часто встречающиеся события приведены в табл. 10.1.
Таблица 10.1. Избранные события форм и элементов управления
Событие
|
Объекты, которые распознают событие
|
Когда происходит событие
|
Activate
|
Формы
|
Каждый раз, когда форма активизируется (получает фокус ввода)
|
AddControl
|
Формы, фреймы и формы с множеством страниц
|
При добавлении в объект элемента управления во время выполнения формы
|
AfterUpdate
|
Все "действующие" элементы управления, кроме кнопок
|
После установки нового значения для элемента управления, в момент перехода от данного элемента управления к другому
|
Change
|
Все "действующие" элементы управления, кроме кнопок
|
При изменении значения свойства Value элемента управления
|
Click
|
Формы и все типы элементов управления
|
После щелчка кнопкой мыши на объекте
|
DblClick
|
Формы и все типы элементов управления
|
После двойного щелчка кнопкой мыши на объекте
|
DropButtonClick
|
Текстовые поля и поля со списком
|
При появлении раскрывающегося списка (после щелчка на кнопке раскрытия или нажатия клавиши )
|
Enter
|
Все типы элементов управления
|
Непосредственно перед тем, как элемент управления получит фокус ввода от другого элемента управления в той же форме
|
Error
|
Формы и все типы элементов управления
|
Когда возникает ошибка, но информация о ней не может возвратиться программе
|
Exit
|
Все типы элементов управления
|
Непосредственно перед тем, как фокус ввода перейдет от данного элемента управления к другому в той же форме
|
KeyUp, KeyDown, Keypress
|
Формы и все типы элементов управления
|
При нажатии или отпускании кнопки
|
Layout
|
Формы, фреймы и формы с множеством страниц
|
При изменении размеров объекта
|
RemoveControl
|
Формы, фреймы и формы с множеством страниц
|
При удалении элемента управления из объекта во время выполнения формы
|
Scroll
|
Формы, фреймы и формы с множеством страниц, а также текстовые поля, списки и поля со СПИСКОМ
|
При изменении положения бегунка полосы прокрутки
|
Читать дальше