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