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 的常數和值,由 Visio 類型庫在 VisOnComponentEnterCodes 中宣告。 下列任何以 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 支援與意見反應