KeyboardEvent.KeyButtonState 属性 (Visio)

返回与键盘事件关联的鼠标按钮以及 SHIFT 和 Ctrl 键的状态。 此为只读属性。

语法

expressionKeyButtonState

表达 一个代表 KeyboardEvent 对象的变量。

返回值

Long

备注

KeyButtonState 的可能值可以是下表中显示的任何值的组合,这些值在 Visio 类型库中的 VisKeyButtonFlags 中声明。 例如,如果 KeyButtonState 返回 9,则表示用户在按 Ctrl 时单击了鼠标左键。

常量
visKeyControl 8
visKeyShift 4
visMouseLeft 1
visMouseMiddle 16
visMouseRight 2

示例

此类模块示范如何定义名为 KeyboardListener 的接收类,它侦听由活动窗口中的键盘操作触发的事件。 它通过使用 WithEvents 关键字来声明对象变量 vsoWindow。 该类模块还包含 KeyDownKeyPressKeyUp 事件的事件处理程序。

若要运行此示例,请在 Microsoft Visual Basic for Applications (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 支持和反馈,获取有关如何接收支持和提供反馈的指南。