共用方式為


MouseEvent.ToString 屬性 (Visio)

會傳回代表 KeyboardEventMouseEvent 物件屬性的字串。 唯讀。

語法

表情ToString

一個代表 MouseEvent 物件的變數。

傳回值

字串

註解

ToStringKeyboardEventMouseEvent 這兩個物件的預設屬性。

KeyDownKeyPressKeyUp 事件觸發時,ToString 屬性會傳回字串,代表傳送到 VisEventProcKeyboardEvent 物件的屬性。 該字串具有下列形式:

事件代碼 ; KeyCode 屬性值; KeyButtonState 屬性值; KeyAscii 房產價值; 視窗。標題

其中 event code 會傳回所觸發事件的代碼,Window.Caption 則傳回事件來源視窗的標題。 例如,若使用者在按住 Shift 鍵的同時按下「L」鍵,回應 KeyPress 事件, ToString 可能會返回

713;0;4;76;圖1

MouseDownMouseMoveMouseUp 事件觸發時, ToString 屬性會回傳一個字串,代表 MouseEvent 物件的屬性,並傳給 VisEventProc。 該字串具有下列形式:

事件代碼 ; 按鈕 屬性值; KeyButtonState 屬性值; x 房產價值; y 房產價值; 視窗。標題

其中 event code 會傳回所觸發事件的代碼,Window.Caption 則傳回事件來源視窗的標題。 例如,如果使用者在按住 Shift 鍵時,在繪圖頁面中間點擊左鍵,回應 MouseDown 事件, ToString 可能會返回

709;1;5;4.3750003+000;4.265000+000;圖1

關於 ToString 回傳的字串所代表的每個屬性可能回傳的值,請參見本參考文獻中相應的屬性主題。

範例

下列的 Microsoft Visual Basic for Applications (VBA) 範例會示範如何使用 AddAdvise 方法來建立會接收 MouseDown 事件的 Event 物件。 它會使用 MouseEvent 物件的 ToString 屬性來報告所觸發事件的詳細資料。

範例包含一個類別模組及兩個公開程序,這些程序會插入活躍 Visio 文件的 ThisDocument 專案中:

  • CreateEventObject 程序會建立 sink 物件 (事件處理) 類別的實例,此類別名為 clsEventSink 且會傳送到 AddAdvise 方法並接收事件的通知。 此外,此程序還會建立 Event 物件,將 MouseDown 事件 (來源為 Application) 的觸發通知傳送到 sink 物件。

  • 當你的程式使用完這個事件物件時,DeleteEventObject 程序會刪除它。

clsEventSink 類別會實作 IVisEventProc 介面。 類別模組會建立類別來處理由 Visio Application 物件所觸發的事件。 模組是由 VisEventProc 函數所組成,而該函數會使用 Select Case 區塊檢查 MouseDown 事件。 當 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 支援與意見反應