EventList.Add 方法 (Visio)
添加 一个 Event 对象,该对象在事件发生时运行加载项。 Event 对象将添加到要接收其事件的源对象的 EventList 集合中。
语法
表达式。添加 (EventCode、 Action、 Target、 TargetArgs)
表达 一个代表 EventList 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
EventCode | 必需 | Integer | 要捕获的事件。 |
操作 | 必需 | Integer | 要执行的操作。 必须是 visActCodeRunAddon,即 Visio 类型库中的 VisEventCodes 的一个成员。 |
目标 | 必需 | 字符串 | 加载项的名称。 |
TargetArgs | 必需 | 字符串 | 传递给 Event 对象用以设置其 TargetArgs 属性的字符串。 |
返回值
Event
备注
其 EventList 集合中包含 Event 对象的源对象建立要报告事件的范围。 为源对象和对象模型层次结构中较低的对象报告事件。 例如,要在打开特定文档时运行加载项,请将 DocumentOpened 事件的 Event 对象添加到该文档的 EventList 集合。 要在应用程序实例中打开任意文档时运行加载项,请将 Event 对象添加到 Application 对象的 EventList 集合中。
创建 Event 对象是处理 C++ 或其他非 Microsoft Visual Basic 解决方案中的事件的一种常用方法。 使用 Visual Basic WithEvents 关键字处理事件时,源对象的事件集中的所有事件都会触发,但在创建 Event 对象时,程序只会收到所选事件的通知。 根据您的解决方案,这可能会提高性能。
运行加载项的 Event 对象可以是永久性的:即它们可与 Visio 文档一起存储。 要具有永久性,Event 对象的 Persistent 和 Persistable 属性必须都为 True。
传递给 Add 方法的参数设置 Event 对象的 Event、Action (visActCodeRunAddon)、Target 和 TargetArgs 属性的初始值。
事件代码由 Visio 类型库声明并且有前缀 visEvt。 事件代码通常为常量的组合。 例如, visEvtAdd + visEvtDoc 是 DocumentAdded 事件的事件代码。 若要查找要创建的事件的事件代码,请参阅事件代码。
要创建建议关于事件的调用方的接收对象的 Event 对象,请参阅 AddAdvise 方法。
示例
以下示例显示如何将运行加载项的 Event 对象添加到源对象的 EventList 集合(在本例中是您要接收其事件的 Document 对象)。
运行此宏之前,请将 路径 \ 文件名 替换为 Visio 项目中可执行加载项 (EXE) 的有效路径和文件名。 该加载项应该不使用任何参数。
Public Sub AddEvent_Example()
Dim vsoAddons As Visio.Addons
Dim vsoEventList As Visio.EventList
Dim vsoDocument As Visio.Document
Dim vsoEvent As Visio.Event
Dim vsoAddon As Visio.Addon
'Add a document based on the Basic Diagram template.
Set vsoDocument = Documents.Add("Basic Diagram.vst")
'Add an add-on to the Addons collection.
Set vsoAddons = Visio.Addons
Set vsoAddon = vsoAddons.Add("path \filename ")
'Add a BeforeDeleteSelection event to the EventList collection
'of the Document object. The event will start your add-on,
'which takes no arguments.
Set vsoEventList = vsoDocument.EventList
Set vsoEvent = vsoEventList.Add(visEvtCodeBefSelDel, _
visActCodeRunAddon, _
"path \filename ", "")
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。