События происходят автоматически когда пользователь производит конкретные действия в системе или в приложении. События, ассоциированные с объектом, происходят, когда пользователь взаимодействует с объектом каким-либо способом, например, с помощью перебора с клавишей Tab, при щелках по клавишам мыши, перемещением на объект указателя мыши и т.д. Например, класс CommandButton содержит событие Click, которое срабатывает при щелчке по левой клавише мыши на объекте этого класса.
Вы можете добавить свой код в процедуру события объекта, с тем, чтобы при наступлении события для объекта, код мог быт автоматически исполнен. Например, вы можете добавить код в событие Click, для того, чтобы когда пользователь щелкнул по командной кнопке, автоматически выполнился бы код для производства какого-то действия, например для открытия формы. Системные события также могут исполнять код в событиях, например в случае использования элемента управления Timer в процедурном коде события Timer.
В приведенной ниже таблице содержится список базового набора событий Visual FoxPro, которые применимы к большинству элементов управления.
Событие | Событие наступает, когда |
---|---|
создается объект. | |
объект высвобождается из памяти. | |
Пользователь щелкает на объекте, используя первичную клавишу мыши. | |
Пользователь дважды щелкает на объекте, используя первичную клавишу мыши. | |
Пользователь щелкает на объекте, используя вторичную клавишу мыши. | |
Объект получает фокус через действие пользователя, такое как перемещение с помощью клавиши табуляции или щелчок или с помощью переноса фокуса на объект программным способом, с помощью метода SetFocus. Для получения более подробной информации, see SetFocus Method. | |
Объект теряет фокус через действие пользователя, такое как перемещение с помощью клавиши табуляции или щелчок или с помощью переноса фокуса на другой объект программным способом, с помощью метода SetFocus. | |
Пользователь нажимает и отпускает клавишу. | |
Пользователь нажимает клавишу мыши, когда ее указатель находится над объектом. | |
Пользователь перемещает указатель мыши над объектом. | |
Пользователь отпускает клавишу мыши, когда ее указатель находится над объектом. |
Вызов событий программным способом
Большинство событий происходит автоматически, когда система или пользователь производят действия. Однако, вы можете генерировать приведенные ниже события программным способом, используя определенные команды Visual FoxPro:
-
Используйте команду MOUSE для генерации событий Click, DblClick, MouseMove и DragDrop.
-
Используйте команду ERROR, для генерации события Error.
-
Используйте команду KEYBOARD для генерации события KeyPress.
Для получения более подробной информации, смотрите Команда MOUSE, Команда ERROR и Команда KEYBOARD .
Хотя вы не можете вызвать срабатывания большинства событий программным способом, вы можете вызвать процедуры, ассоциированные с событием, которые исполняют код события, но не вызывают события как такового. Например, приведенная ниже строка кода вызывает процедуру события Activate для формы frmPhoneLog и исполняет код события; однако, она не активизирует саму форму:
![]() | |
---|---|
frmPhoneLog.Activate |
Если вы желаете активизировать форму, используйте метод формы Show:
![]() | |
---|---|
frmPhoneLog.Show |
Вызво метода Show отображает и активизирует форму, при этом исполняется код в событии Activate.