KeyboardEvent.ToString 属性 (Visio)
返回代表 KeyboardEvent 或 MouseEvent 对象的属性的字符串。 此为只读属性。
语法
表达式。Tostring
表达 一个代表 KeyboardEvent 对象的变量。
返回值
String
备注
ToString 是 KeyboardEvent 和 MouseEvent 对象的默认属性。
当 KeyDown、KeyPress 或 KeyUp 事件触发时,ToString 属性返回一个字符串,该字符串代表传递给 VisEventProc 的 KeyboardEvent 对象的各个属性。 该字符串的形式如下:
事件代码 ; KeyCode 属性值; KeyButtonState 属性值; KeyAscii 属性值; Window.Caption
其中 event code 返回触发的事件的代码,Window.Caption 返回引起该事件的源窗口的标题。 例如,如果用户在按住 Shift 键时按下了“L”键,以响应 KeyPress 事件, ToString 可能会返回
713;0;4;76;Drawing1
当 MouseDown、MouseMove 或 MouseUp 事件触发时,ToString 属性将返回一个字符串,该字符串表示传递给 VisEventProc 的 MouseEvent 对象的属性。 该字符串的形式如下:
事件代码 ; 按钮 属性值; KeyButtonState 属性值; x 属性值; y 属性值; Window.Caption
其中 event code 返回触发的事件的代码,Window.Caption 返回引起该事件的源窗口的标题。 例如,如果用户在按住 Shift 键的同时单击绘图页中间附近的鼠标左键,以响应 MouseDown 事件, ToString 可能会返回
709;1;5;4.3750003+000;4.265000+000;Drawing1
有关 由 ToString 返回的字符串所表示的每个单独属性返回的可能值的详细信息,请参阅此参考中的相应属性主题。
示例
以下 Microsoft Visual Basic for Applications (VBA) 示例显示如何使用 AddAdvise 方法创建会接收 MouseDown 事件的 Event 对象。 该宏使用 MouseEvent 对象的 ToString 属性报告触发的事件的详细信息。
该示例包含一个类模块和两个公共过程,这些过程插入到活动 Visio 文档的 ThisDocument 项目中:
CreateEventObject 过程创建一个名为 clsEventSink 的接收对象(事件处理)类的实例,该实例传递给 AddAdvise 方法并接收事件的通知。 另外,该过程还创建一个 Event 对象,该对象将来源于 Application 对象的 MouseDown 事件的触发通知发送到接收对象。
当程序完成使用时, DeleteEventObject 过程会删除此 Event 对象。
clsEventSink 类实现 IVisEventProc 接口。 该类模块创建一个类来处理由 Visio Application 对象触发的事件。 该模块包括使用 Select Case 块检查 MouseDown 事件的 VisEventProc 函数。 MouseDown 事件触发时,Visio 将 MouseEvent 对象作为 pSubjectObj 传递给 VisEventProc。 然后该函数生成一个消息,显示传递给该函数的 MouseEvent 对象的 ToString 属性所返回的字符串。
其他事件属于默认情况 (Case Else)。 Case Else 块 ( strMessage ) 构造一个字符串,其中包含触发的事件的名称和事件代码。 最后,该函数在“立即”窗口中显示这一字符串。
该示例假设 Visio 应用程序窗口中存在一个活动文档。 将以下代码复制到 Visual Basic 编辑器中的 ThisDocument 项目中:
Option Explicit
Private mEventSink As clsEventSink
'Declare visEvtAdd as a 2-byte value
'to avoid a run-time overflow error
Private Const visEvtAdd% = &H8000
Public Sub CreateMouseDownEventObject()
Dim vsoApplicationEvents As Visio.EventList
Dim vsoMouseDownEvent As Visio.Event
'Create an instance of the clsEventSink class
'to pass to the AddAdvise method.
Set mEventSink = New clsEventSink
'Get the EventList collection of the application
Set vsoApplicationEvents = Application.EventList
'Add an Event object for the MouseDown event
'that will send notifications.
Set vsoMouseDownEvent= vsoApplicationEvents.AddAdvise( _
visEvtCodeMouseDown, mEventSink, "", "Mouse down...")
End Sub
Public Sub DeleteMouseDownEventObject()
'Delete the Event object for the MouseDown event
vsoMouseDownEvent.Delete
Set vsoMouseDownEvent = Nothing
End Sub
将以下代码复制到 VBA 中名为“clsEventSink”的新类模块中。
Implements Visio.IVisEventProc
Private Function IVisEventProc_VisEventProc( _
ByVal nEventCode As Integer, _
ByVal pSourceObj As Object, _
ByVal nEventID As Long, _
ByVal nEventSeqNum As Long, _
ByVal pSubjectObj As Object, _
ByVal vMoreInfo As Variant) As Variant
Dim strMessage As String
Dim vsoMouseDownEvent As Visio.MouseEvent
'Find out which event fired
Select Case nEventCode
Case visEvtCodeMouseDown
Set vsoMouseEvent = pSubjectObj
strMessage = "ToString is: " & vsoMouseEvent.ToString
Case Else
strMessage = "Other (" & nEventCode & ")"
End Select
'Display the event name and the event code
Debug.Print strMessage
End Function
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。