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