Событие 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 и обратная связь.