Поделиться через


Событие Application.KeyDown (Visio)

Происходит при нажатии клавиши клавиатуры.

Синтаксис

expression. KeyDown (KeyCode, KeyButtonState, CancelDefault)

выражение: переменная, представляющая объект Application.

Параметры

Имя Обязательный или необязательный Тип данных Описание
KeyCode Обязательный Long Нажатая клавиша. Возможные значения объявляются в константах keycode.
KeyButtonState Обязательный Long Состояние клавиш SHIFT и CTRL для события. Может быть сочетанием значений, объявленных в VisKeyButtonFlags. Например, если KeyButtonState возвращает значение 12, это означает, что пользователь удерживал клавиши SHIFT и CTRL.
CancelDefault Обязательный Boolean False, если Microsoft Visio должен обработать сообщение, полученное от этого события; В противном случае — Значение True.

Замечания

Если для параметра CancelDefault заданозначение True, Visio не будет обрабатывать сообщение, полученное при нажатии кнопки мыши.

В отличие от некоторых других событий Visio, KeyDown не имеет префикса Query, но по-прежнему является событием запроса. То есть вы можете отменить обработку сообщения, отправленного KeyDown, задав для cancelDefaultзначение True, или, если для обработки события используется метод VisEventProc , возвращая значение True. Дополнительные сведения см. в разделах о методе VisEventProc и любых событиях запроса (например, о событии QueryCancelSuspend ).

Примечание.

Нажатие сочетания клавиш акселератора, например CTRL+C, не приводит к возникновению события KeyDown .

Если вы используете VBA, синтаксис в этом разделе описывает распространенный и эффективный способ обработки событий.

Если вы хотите создать собственные объекты Event , используйте метод Add или AddAdvise .

Чтобы создать объект Event , запускающий надстройку, используйте метод Add в том виде, в котором он применяется к коллекции EventList .

Чтобы создать объект Event , получающий уведомление, используйте метод AddAdvise .

Чтобы найти код события, которое требуется создать, см. статью Коды событий.

Пример

В этом модуле класса показано, как определить класс синхронизации с именем KeyboardListener , который прослушивает события, вызванные действиями клавиатуры в активном окне. Объектная переменная vsoWindow объявляется с помощью ключевого слова WithEvents . Модуль класса также содержит обработчики событий KeyDown, KeyPress и KeyUp .

Чтобы запустить этот пример, вставьте новый модуль класса в проект VBA, назовите его KeyboardListener и вставьте следующий код в модуль.

Dim WithEvents vsoWindow As Visio.Window 
 
Private Sub Class_Initialize() 
 
 Set vsoWindow = ActiveWindow 
 
End Sub 
 
Private Sub Class_Terminate() 
 
 Set vsoWindow = Nothing 
 
End Sub 
 
Private Sub vsoWindow_KeyDown(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean) 
 
 Debug.Print "KeyCode is "; KeyCode 
 Debug.Print "KeyButtonState is" ; KeyButtonState 
 
End Sub 
 
Private Sub vsoWindow_KeyPress(ByVal KeyAscii As Long, CancelDefault As Boolean) 
 
 Debug.Print "KeyAscii value is "; KeyAscii 
 
End Sub 
 
Private Sub vsoWindow_KeyUp(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean) 
 
 Debug.Print "KeyCode is "; KeyCode 
 Debug.Print "KeyButtonState is" ; KeyButtonState 
 
End Sub

Затем вставьте следующий код в проект ThisDocument .

Dim myKeyboardListener As KeyboardListener 
 
Private Sub Document_DocumentSaved(ByVal doc As IVDocument) 
 
 Set myKeyboardListener = New KeyboardListener 
 
End Sub 
 
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument) 
 
 Set myKeyboardListener = Nothing 
 
End Sub

Сохраните документ, чтобы инициализировать класс, а затем нажмите любую клавишу, чтобы запустить событие KeyDown . В окне Интерпретация обработчик выводит код клавиши, нажатой для запуска события, а также состояние клавиш SHIFT и CTRL во время запуска события.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.