Поделиться через


Свойство KeyboardEvent.ToString (Visio)

Возвращает строку, представляющую свойства объекта KeyboardEvent или MouseEvent . Только для чтения.

Синтаксис

expression. Tostring

Выражение Переменная, представляющая объект KeyboardEvent .

Возвращаемое значение

Строка

Замечания

ToString — это свойство по умолчанию для объектов KeyboardEvent и MouseEvent .

При возникновении события KeyDown, KeyPress или KeyUp свойство ToString возвращает строку, представляющую свойства объекта KeyboardEvent , передаваемого в VisEventProc. Строка имеет следующую форму:

код события ; Значение свойства KeyCode ; Значение свойства KeyButtonState ; Значение свойства KeyAscii ; Window.Caption

где код события возвращает код события, которое сработало, а Window.Caption возвращает заголовок окна, в котором произошло событие. Например, если пользователь нажал клавишу "L", удерживая клавишу SHIFT, в ответ на событие KeyPress toString может вернуться.

713;0;4;76;drawing1

При возникновении события MouseDown, MouseMove или MouseUp свойство ToString возвращает строку, представляющую свойства объекта MouseEvent , передаваемого в VisEventProc. Строка имеет следующую форму:

код события ; Значение свойства Button ; Значение свойства KeyButtonState ; значение свойства x ; Значение свойства y ; Window.Caption

где код события возвращает код события, которое сработало, а Window.Caption возвращает заголовок окна, в котором произошло событие. Например, если пользователь нажал левую кнопку мыши рядом с серединой страницы документа, удерживая клавишу SHIFT, в ответ на событие MouseDown, ToString может вернуться.

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

Дополнительные сведения о возможных значениях, возвращаемых каждым из отдельных свойств, представленных строкой, возвращаемой ToString, см. в соответствующих разделах о свойствах в этом справочнике.

Пример

В следующем примере Microsoft Visual Basic для приложений (VBA) показано, как использовать метод AddAdvise для создания объекта Event, который будет поглощать событие MouseDown. Он использует свойство ToString объекта MouseEvent для передачи сведений о событии, которое сработало.

Пример содержит модуль класса и две открытые процедуры, которые вставляются в проект ThisDocument активного документа Visio:

  • Процедура CreateEventObject создает экземпляр класса приемника-объекта (обработка событий) с именем clsEventSink , который передается в метод AddAdvise и получает уведомления о событиях. Кроме того, процедура создает объект Event для отправки уведомлений о срабатывании события MouseDown , исходного объектом Application , в объект приемника.

  • Процедура DeleteEventObject удаляет этот объект Event по завершении использования программы.

Класс clsEventSink реализует интерфейс IVisEventProc . Модуль класса создает класс для обработки событий, инициируемых объектом Приложения Visio. Модуль состоит из функции VisEventProc, которая использует блок Select Case для проверки события MouseDown . При возникновении события MouseDown Visio передает объект MouseEventв VisEventProc как pSubjectObj. Затем функция создает сообщение, отображающее строку, возвращаемую свойством ToString объекта MouseEvent , переданного функции.

Другие события относятся к регистру по умолчанию (Case Else). Блок Case Else создает строку ( strMessage ), которая содержит имя и код события, которое сработает. Наконец, функция отображает строку в окне Интерпретация.

В примере предполагается, что в окне приложения Visio есть активный документ. Скопируйте следующий код в проект ThisDocument в редакторе Visual Basic:

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 и обратная связь.