Application.OnComponentEnterState 方法 (Visio)

通知 Microsoft Visio 实例,客户端代码正在使该实例进入或退出特定状态。

语法

表达式OnComponentEnterState (uStateIDbEnter)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
uStateID 必需 VisOnComponentEnterCodes 描述正在进入或退出的状态以及影响处于指示的状态时的行为的标志。
bEnter 必需 Boolean True 指示正在进入某种状态;False 指示正在退出某种状态。

返回值

Nothing

注解

uStateID 参数指示进入或退出的状态。 调用此方法的代码在进入和退出该状态时都应该这样做。

目前,OnComponentEnterState 方法支持的唯一状态更改是 visComponentStateModal,它指示客户端正在执行使 Visio 进入或退出一种模式状态的动作。

当使 Visio 进入或离开模式状态时(例如显示模型对话框时),大多数客户端代码无需调用 OnComponentEnterState 方法。 通常,客户端代码在显示非 Microsoft Visual Basic for Applications (VBA) 窗体的对话框并且要求不同于 Visio 默认行为的行为时会使用此方法。

下面是 uStateID 的常量和值,它们由 Visio 类型库在 VisOnComponentEnterCodes 中声明。 以下任何以 visModal 为前缀的常量都可以与 visComponentStateModal 结合使用 ,以在转换到或从模式状态转换时影响 Visio 行为。

常量 说明
visComponentStateModal 1 正在标识的状态是一种模式状态。
visModalDeferEvents &H10000 导致 Visio 尝试在模式化时延迟触发事件。 默认情况下,Visio 在显示自己的对话框时会延迟触发事件,但在客户端代码导致出现对话框时不延迟触发事件。对于多个嵌套模式范围,如果任何范围正在延迟事件,则最外层范围内延迟事件的所有范围都将延迟事件。仅当 Visio 进入模式范围时,此标志才有效。 退出模式范围时,Visio 的行为与进入范围时的行为相同。
visModalNoBeforeAfter &H20000 阻止 Visio 在进入模式范围时触发 BeforeModal 事件,或者阻止 Visio 在离开模式范围时触发 AfterModal 事件。默认情况下,Visio 在显示自己的对话框或显示由 VBA 实现的对话框时将触发这些事件,但是当客户端代码显示对话框时不会触发这些事件。调用 OnComponentEnterState 方法将导致触发这些事件,除非指定了 visModalNoBeforeAfter
visModalDontBlockMessages &H40000 防止 Visio 在模式化时拒绝来自其main线程外部的调用。 默认情况下,Visio 在模式化时拒绝来自其线程外部的调用。对于多个嵌套模式范围,如果任何范围正在延迟事件,则最外层范围内延迟事件的所有范围都将延迟事件。仅当 Visio 进入模式范围时,此标志才有效。 退出模式范围时,Visio 的行为与进入范围时的行为相同。
visModalDisableVisiosFrame &H80000 使 Visio 在模式化时禁用其框架窗口。 默认情况下,Visio 在显示自己的对话框或显示由 VBA 实现的对话框时禁用其框架窗口,但当另一个进程中的客户端代码显示对话框时则不禁用。如果另一个进程中的代码想要显示对话框,并且使 Visio 框架窗口的行为就像是显示对话框的 Visio 进程一样,它可以设置此标志。仅当 Visio 进入模式范围时,此标志才有效。 退出模式范围时,Visio 的行为与进入范围时的行为相同。

支持和反馈

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