Visio) (Application.OnComponentEnterState 方法

會通知 Microsoft Visio 實例,用戶端程式碼造成此實例進入或結束某個特定的狀態。

語法

運算式OnComponentEnterState (uStateIDbEnter)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
uStateID 必要 VisOnComponentEnterCodes 描述所進入或離開的狀態,以及在指示的狀態下影響行為的旗標。
bEnter 必要 布林值 True 表示要進入某個狀態;False 表示要結束某個狀態。

傳回值

註解

uStateID 引數指出正在進入或結束的狀態。 呼叫此方法的程式碼應該在進入和退出狀態時都這樣做。

目前 OnComponentEnterState 方法所支援的唯一狀態變更為 visComponentStateModal,表示用戶端正在執行一個會造成 Visio 進入或結束強制回應狀態的動作。

大多數的用戶端程式碼在造成 Visio 進入或離開強制回應的狀態時 (例如,在顯示強制回應對話方塊時),並不需要呼叫 OnComponentEnterState 方法。 一般來說,這個方法是由顯示對話方塊 (而非 Microsoft Visual Basic for Applications (VBA) 表單) 的用戶端程式碼所使用,而且需要的行為與 Visio 預設的行為不同。

以下是 uStateID 的常數和值,它們由 VisOnComponentEnterCodes 中的 Visio 型別程式庫宣告。 下列任何以 visModal 為前置詞的常數都可以與 visComponentStateModal 結合,以影響轉換至強制回應狀態或從強制回應狀態轉換時的 Visio 行為。

常數 描述
visComponentStateModal 1 所識別的狀態為強制回應狀態。
visModalDeferEvents &H10000 造成 Visio 嘗試延遲強制回應時引發事件。 根據預設,Visio 在顯示自己的對話方塊時會延遲引發事件,但是當用戶端程式碼導致對話方塊出現時,不會延遲引發事件。在數個巢狀強制回應範圍的情況下,如果有任何範圍延遲事件,則延遲事件的最外層範圍內的所有範圍都會延遲事件。此旗標只有在 Visio 進入強制回應範圍時才會生效。 離開強制回應範圍時,Visio 的行為與進入範圍時相同。
visModalNoBeforeAfter &H20000 會在進入強制回應範圍時,阻止 Visio 引發 BeforeModal 事件,或在離開強制回應範圍時,阻止 Visio 引發 AfterModal 事件。根據預設,Visio 在顯示它自己的對話方塊或顯示由 VBA 所實作的對話方塊時,會引發這些事件,但是當用戶端程式碼顯示對話方塊時,並不會引發這些事件。除非有指定 visModalNoBeforeAfter,否則呼叫 OnComponentEnterState 方法將會造成這些事件的引發。
visModalDontBlockMessages &H40000 防止 Visio 在強制回應時拒絕來自其主執行緒外部的呼叫。 根據預設,Visio 在強制回應時會拒絕來自其執行緒外部的呼叫。在數個巢狀強制回應範圍的情況下,如果有任何範圍延遲事件,則延遲事件的最外層範圍內的所有範圍都會延遲事件。此旗標只有在 Visio 進入強制回應範圍時才會生效。 離開強制回應範圍時,Visio 的行為與進入範圍時相同。
visModalDisableVisiosFrame &H80000 導致 Visio 在強制回應時停用其框架視窗。 根據預設,Visio 會在顯示自己的對話方塊或顯示 VBA 實作的對話方塊時停用其框架視窗,但當另一個程式中的用戶端程式碼顯示對話方塊時不會停用。如果另一個程式中的程式碼想要顯示對話方塊,並讓 Visio 框架視窗表現得像是顯示對話方塊的 Visio 程式一樣,它可以設定此旗標。此旗標只有在 Visio 進入強制回應範圍時才會生效。 離開強制回應範圍時,Visio 的行為與進入範圍時相同。

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應