Application.MustFlushScopeBeginning 事件 (Visio)

在强制 Microsoft Visio 实例刷新其事件队列之前,发生此事件。

语法

表达式MustFlushScopeBeginning (应用)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
应用程序 必需 [IVAPPLICATION] 被强制刷新其事件队列的 Visio 实例。

备注

此事件可与 MustFlushScopeEnded 事件一起用来确定是否因强制 Visio 刷新其事件队列而触发事件。

Visio 维护着一个待处理事件队列,当它能够处理来自事件处理程序的任意请求(回调)时,就会尝试触发这些事件。

有些情况下,在 Visio 未准备好处理任意请求时,将强制它刷新自己的事件队列。 Visio 在被强制刷新事件队列时,首先触发 MustFlushScopeBeginning 事件,然后触发其事件队列中的现有事件。 在触发完所有待处理的事件后,Visio 触发 MustFlushScopeEnded 事件。

当 Visio 触发 MustFlushScopeBeginning 事件后,客户端程序在收到 MustFlushScopeEnded 事件之前,不应调用具有副作用的 Visio 方法。 当 Visio 处于 MustFlushScopeBeginning 事件与 MustFlushScopeEnded 事件之间时,客户端可以执行 Visio 对象的任意查询,但产生副作用的操作可能会失败。

由于排入队列的事件可能应用于即将关闭或删除的对象,因此 Visio 在触发“Before”事件(如 BeforeDocumentCloseBeforeShapeDelete)之前,立即执行其事件队列的强制刷新。 我们用 BeforeDocumentClose 事件作为例子,排入队列的某些事件应用到的 Shape 对象所在的文档正在关闭。 因此,在文档关闭前,Visio 将触发其事件队列中的所有事件。

在删除形状时,按照以下顺序触发事件:

  1. MustFlushScopeBeginning 事件 - 客户端不应调用具有副作用的方法。

  2. 事件队列中存在零个 (0) 或多个事件。

  3. BeforeShapeDelete 事件 - 形状是可行的,但 Visio 将删除它。

  4. MustFlushScopeEnded 事件 - 客户端可以恢复调用具有副作用的方法。

  5. ShapesDeleted 事件 - 已删除形状。

  6. NoEventsPending 事件 - 没有要触发的事件。

在删除形状之前(BeforeShapeDeleted 事件)和删除形状之后(ShapesDeleted 事件)均会触发事件。 如果监视这些事件的程序要求为响应第一个形状删除操作而删除其他形状,则应使用 ShapesDeleted 事件处理程序,而不应使用 BeforeShapeDeleted 事件处理程序。 BeforeShapeDeleted 事件位于 MustFlushScopeBeginning 事件和 MustFlushScopeEnded 事件的范围内,而 ShapesDeleted 事件不在该范围内。

由于 Visio 在事件发生时向其分配序列号,因此 MustFlushScopeBeginning 事件的序列号可能大于客户端在收到 MustFlushScopeBeginning 事件后看到的序列号。 虽然首先触发 MustFlushScopeBeginning 事件,但在强制刷新开始时排入队列的所有事件的序列号都比 MustFlushScopeBeginning 事件的序列号小,

如果您使用 Microsoft Visual Basic 或 Visual Basic for Applications (VBA),则此主题中的语法描述的是一种通用而有效的事件处理方法。

如果要创建自己的 Event 对象,请使用 AddAddAdvise 方法。

若要创建可运行加载项的 Event 对象,请使用 Add 方法,因为它适用于 EventList 集合。

若要创建可接收通知的 Event 对象,请使用 AddAdvise 方法。

若要查找要创建的事件的事件代码,请参阅事件代码

支持和反馈

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