Event.SetFilterObjects 方法 (Visio)

指定对象类型的数组以及指示如何筛选每个对象的事件的 TrueFalse 值。

语法

expressionSetFilterObjects( _Objects()_ )

表达 一个代表 Event 对象的变量。

参数

名称 必需/可选 数据类型 说明
对象 () 必需 Long 对象类型数组以及 TrueFalse 值,指示如何筛选每个对象类型的事件。

返回值

Nothing

注解

将使用 AddAdvise 方法创建的 Event 对象添加到源对象的 EventList 集合中时,默认行为是该事件的所有匹配项都被传递给事件接收器。 SetFilterObjects 方法提供根据对象类型忽略选定事件的方式。

传递给 SetFilterObjectsObjects() 参数是采用以下方式定义的数组。

该数组中的元素数是 2 的倍数:

  • 第一个元素包含对象类型(visTypePagevisTypeGroupvisTypeShapevisTypeForeignObjectvisTypeGuidevisTypeDoc 之一)。

  • 第二个元素包含 TrueFalse 值,指示是否侦听该对象的事件(True 表示侦听对象的事件;False 表示排除对象的事件)。

若要使事件成功地通过对象事件筛选,它必须满足以下条件:

  • 必须为有效的对象类型。

  • 如果所有的筛选器都为 True,则事件必须至少与一个筛选器匹配。

  • 如果所有的筛选器都为 False,则事件一定与任何筛选器都不匹配。

  • 如果筛选器为 TrueFalse 的混合,则事件必须至少与一个 True 筛选器匹配,但一定不能与任何 False 筛选器匹配。

如果数组中没有定义任何 True 区域,则将事件视为 True

例如,如果要仅侦听源自形状或参考线的事件,则可以传递与以下所示类似的数组:

 
 Dim aFilterObjects(1 To (2 * 2)) As Long 
 aFilterObjects(1) = visTypeShape 
 aFilterObjects(2) = True 
 aFilterObjects(3) = visTypeGuide 
 aFilterObjects(4) = True 

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。