共用方式為


Application.OnComponentEnterState method (Visio)

會通知 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 在轉換到或從 modal 狀態轉換時的行為。

常數 描述
visComponentStateModal 1 所識別的狀態為強制回應狀態。
visModalDeferEvents &H10000 導致 Visio 嘗試在模態狀態下延後發射事件。 預設情況下,Visio 在顯示自身對話框時會延後觸發事件,但當用戶端程式碼導致對話框出現時,則不會延遲觸發事件。在多個巢狀模態範圍中,若有任何範圍正在延後事件,則最外層範圍內所有延後事件的範圍都會延後事件。這個旗標只在 Visio 進入模態範圍時才會生效。 當離開模態示波器時,Visio 的行為與進入示波器時相同。
visModalNoBefore After &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 支援與意見反應