Visual Basic 應用程式模型概觀
Visual Basic 提供了定義完善的模型,可用來控制 Windows Forms 應用程式的行為:Visual Basic 應用程式模型。 此模型包含處理應用程式啟動和關機的事件,以及攔截未處理的例外狀況的事件。 它也提供了開發單一執行個體應用程式的支援。 應用程式模型是可延伸的,因此需要更多控制權的開發人員可以自訂其可覆寫的方法。
應用程式模型的用途
一般應用程式必須在啟動和關閉時執行工作。 例如,啟動時,應用程式可以顯示啟動顯示畫面、建立資料庫連線、載入已儲存的狀態等等。 當應用程式關閉時,它可以關閉資料庫連線、儲存目前的狀態等等。 此外,應用程式可以在應用程式意外關閉時執行特定程式碼,例如在未處理的例外狀況期間。
Visual Basic 應用程式模型可讓您輕鬆地建立單一執行個體應用程式。 單一執行個體應用程式與一般應用程式不同,因為一次只能執行一個應用程式的執行個體。 嘗試啟動單一執行個體應用程式的另一個執行個體,會導致原始執行個體收到已進行另一次啟動嘗試的通知,方法是 StartupNextInstance
事件。 通知包含後續執行個體的命令列引數。 接著會關閉應用程式的後續執行個體,再進行任何初始化。
單一執行個體應用程式會啟動,並檢查它是否為第一個執行個體或應用程式的後續執行個體:
如果是第一個執行個體,則會如往常一般啟動。
每次後續嘗試啟動應用程式,而第一個執行個體執行時,會產生非常不同的行為。 後續嘗試會通知第一個執行個體有關命令列引數的資訊,然後立即結束。 第一個執行個體會處理
StartupNextInstance
事件,以判斷後續執行個體的命令列引數為何,並繼續執行。下圖顯示後續執行個體如何發出訊號給第一個執行個體:
藉由處理 StartupNextInstance
事件,您可以控制單一執行個體應用程式的行為。 例如,Microsoft Outlook 通常會以單一執行個體應用程式的形式執行;當 Outlook 正在執行且您再次嘗試啟動 Outlook 時,焦點會轉移到原始執行個體,但不會開啟另一個執行個體。
應用程式模型中的事件
在應用程式模型中可以找到下列事件:
應用程式啟動。 應用程式會在啟動時引發 Startup 事件。 藉由處理此事件,您可以在載入主要表單之前,加入初始化應用程式的程式碼。 如有需要,
Startup
事件也提供在啟動程序階段期間取消執行應用程式。您可以在應用程式啟動程式碼執行時,將應用程式設定為顯示啟動顯示畫面。 根據預設,使用
/nosplash
或-nosplash
命令列引數時,應用程式模型會隱藏啟動顯示畫面。單一執行個體應用程式。 當單一執行個體應用程式的後續執行個體啟動時,就會引發 StartupNextInstance 事件。 事件會傳遞後續執行個體的命令列引數。
未處理的例外狀況。 如果應用程式遇到未處理的例外狀況,則會引發 UnhandledException 事件。 該事件的處理常式可以檢查例外狀況,並判斷是否要繼續執行。
在某些情況下,不會引發
UnhandledException
事件。 如需詳細資訊,請參閱UnhandledException。網路連線變更。 如果電腦的網路可用性變更,應用程式會引發 NetworkAvailabilityChanged 事件。
在某些情況下,不會引發
NetworkAvailabilityChanged
事件。 如需詳細資訊,請參閱NetworkAvailabilityChanged。應用程式關閉. 應用程式會提供 Shutdown 事件,以在即將關閉時發出訊號。 在該事件處理常式中,您可以確定應用程式必須執行的作業已完成,例如關閉和儲存。 您可以將應用程式設定為在主要表單關閉時關閉,或只在所有表單關閉時才關閉。
可用性
根據預設,Visual Basic 應用程式模型適用於 Windows Forms 專案。 如果您將應用程式設定為使用不同的啟始物件,或使用自訂 Sub Main
啟動應用程式程式碼,則該物件或類別可能需要提供 WindowsFormsApplicationBase 類別的實作,才能使用應用程式模型。 如需變更啟始物件的詳細資訊,請參閱應用程式頁面、專案設計工具 (Visual Basic)。