Visio) (Application.MustFlushScopeBeginning 事件

會在 Microsoft Visio 實例強制清除其事件佇列之前發生。

語法

運算式MustFlushScopeBeginning (應用程式)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
應用程式 必要 [IVAPPLICATION] 強制清除其事件佇列的 Visio 實例。

註解

這個事件 (搭配 MustFlushScopeEnded 事件) 可以用來識別是否因為 Visio 強制清除其事件佇列而引發某事件。

Visio 會維護一個擱置事件佇列,當它能夠處理來自事件處理常式的任意要求 (回呼) 的時候,就會嘗試引發這些事件。

有時候,如果 Visio 尚未準備好處理任意要求,就會遭到強制清除其事件佇列。 當發生此狀況時,Visio 會先引發 MustFlushScopeBeginning 事件,然後引發目前位於其事件佇列中的事件。 引發所有擱置的事件後,Visio 就會引發 MustFlushScopeEnded 事件。

Visio 引發 MustFlushScopeBeginning 事件後,在收到 MustFlushScopeEnded 事件之前,用戶端程式不應該呼叫會產生副作用的 Visio 方法。 當 Visio 處於 MustFlushScopeBeginning 事件及 MustFlushScopeEnded 事件之間時,用戶端可以執行 Visio 物件的任意查詢,但是會產生副作用的作業可能會失敗。

在引發 "before" 事件 (例如 BeforeDocumentCloseBeforeShapeDelete) 之前,Visio 會立即執行其事件佇列的強制清除,因為佇列的事件可能是適用於即將關閉或刪除的物件。 舉例來說,使用 BeforeDocumentClose 事件時,可能會有佇列的事件是適用於即將關閉之文件中的圖形物件。 因此,Visio 會先引發其事件佇列中的所有事件,再關閉文件。

刪除圖形時,事件的引發順序如下:

  1. MustFlushScopeBeginning 事件 - 用戶端不應該呼叫具有副作用的方法。

  2. 事件佇列中有零 (0) 個以上的事件。

  3. BeforeShapeDelete 事件 - Shape 可行,但 Visio 會將它刪除。

  4. MustFlushScopeEnded 事件 - 用戶端可以繼續叫用具有副作用的方法。

  5. ShapesDeleted 事件 - 已刪除 Shape。

  6. NoEventsPending 事件 - 不會引發任何事件。

引發事件的時機包括刪除圖形之前 (BeforeShapeDeleted 事件) 及之後 (ShapesDeleted 事件)。 如果監視這些事件的程式要求刪除額外的圖形,以回應初始的圖形刪除要求,則應該在 ShapesDeleted 事件處理常式中進行這個動作,而不是在 BeforeShapeDeleted 事件處理常式中。 BeforeShapeDeleted 事件屬於 MustFlushScopeBeginning 事件及 MustFlushScopeEnded 事件的範圍內,而 ShapesDeleted 事件則否。

MustFlushScopeBeginning 事件的序號可能會比用戶端接收 MustFlushScopeBeginning 事件後所看見之事件的序號還高,因為 Visio 會在事件發生時,為事件指派序號。 當強制清除動作開始時,即使最先引發 MustFlushScopeBeginning 事件,佇列事件的序號仍然會比 MustFlushScopeBeginning 事件的序號還低。

如果您是使用 Microsoft Visual Basic 或 Visual Basic for Applications (VBA),則本主題中的語法會描述有效處理事件的常用方式。

如果您想要建立自己的 Event 物件,請使用 AddAddAdvise 方法。

若要建立可以執行附加元件的 Event 物件,可使用 Add 方法,因為它可適用於 EventList 集合。

若要建立用於接收通知的 Event 物件,則使用 AddAdvise 方法。

若要尋找您要建立之事件的事件代碼,請參閱 事件代碼

支援和意見反應

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