會傳回代表 KeyboardEvent 或 MouseEvent 物件屬性的字串。 唯讀。
語法
表情。ToString
詞 一個代表 MouseEvent 物件的變數。
傳回值
字串
註解
ToString 是 KeyboardEvent 和 MouseEvent 這兩個物件的預設屬性。
當 KeyDown、KeyPress 或 KeyUp 事件觸發時,ToString 屬性會傳回字串,代表傳送到 VisEventProc 之 KeyboardEvent 物件的屬性。 該字串具有下列形式:
事件代碼 ; KeyCode 屬性值; KeyButtonState 屬性值; KeyAscii 房產價值; 視窗。標題
其中 event code 會傳回所觸發事件的代碼,Window.Caption 則傳回事件來源視窗的標題。 例如,若使用者在按住 Shift 鍵的同時按下「L」鍵,回應 KeyPress 事件, ToString 可能會返回
713;0;4;76;圖1
當 MouseDown、 MouseMove 或 MouseUp 事件觸發時, 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 支援與意見反應。