KeyboardEvent.ToString 属性 (Visio)

返回代表 KeyboardEventMouseEvent 对象的属性的字符串。 此为只读属性。

语法

表达式Tostring

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

返回值

String

备注

ToStringKeyboardEventMouseEvent 对象的默认属性。

KeyDownKeyPressKeyUp 事件触发时,ToString 属性返回一个字符串,该字符串代表传递给 VisEventProcKeyboardEvent 对象的各个属性。 该字符串的形式如下:

事件代码 ; KeyCode 属性值; KeyButtonState 属性值; KeyAscii 属性值; Window.Caption

其中 event code 返回触发的事件的代码,Window.Caption 返回引起该事件的源窗口的标题。 例如,如果用户在按住 Shift 键时按下了“L”键,以响应 KeyPress 事件, ToString 可能会返回

713;0;4;76;Drawing1

MouseDownMouseMoveMouseUp 事件触发时,ToString 属性将返回一个字符串,该字符串表示传递给 VisEventProcMouseEvent 对象的属性。 该字符串的形式如下:

事件代码 ; 按钮 属性值; 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。