Visual Studio Tools for Office 專案事件

更新:2007 年 11 月

每個 Visual Studio Tools for Office 專案範本都會自動產生數個事件處理常式。文件層級自訂的事件處理常式與應用程式層級增益集的事件處理常式有些許不同。

如需自訂和增益集的詳細資訊,請參閱 Office 方案開發概觀

文件層級自訂

Visual Studio Tools for Office 會在文件層級自訂中為新的或現有的文件或工作表,提供產生的後置程式碼。這個程式碼會引發兩個不同的事件:Startup 和 Shutdown。

Startup 事件

在執行文件且組件 (Assembly) 中的所有初始設定程式碼都已執行之後,每個主項目 (文件或工作表) 都會引發 Startup 事件。在要執行您程式碼的類別 (Class) 建構函式 (Constructor) 中,這是最後一個要執行的項目。如需主項目的詳細資訊,請參閱主項目和主控制項概觀

建立文件層級專案時,Visual Studio Tools for Office 會在產生的程式碼檔中建立 Startup 事件的事件處理常式:

  • 如果是 Microsoft Office Word 專案,事件處理常式的名稱為 ThisDocument_Startup。

  • 如果是 Microsoft Office Excel 專案,事件處理常式有下列名稱:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown 事件

當已載入您程式碼的應用程式定義域即將卸載時,每個主項目 (文件或工作表) 都會引發 Shutdown 事件。在卸載時,於類別中呼叫它是最後要執行的動作。

建立文件層級專案時,Visual Studio Tools for Office 會在產生的程式碼檔中建立 Shutdown 事件的事件處理常式:

  • 如果是 Microsoft Office Word 專案,事件處理常式的名稱為 ThisDocument_Shutdown。

  • 如果是 Microsoft Office Excel 專案,事件處理常式有下列名稱:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

注意事項:

在文件的 Shutdown 事件處理常式期間,請勿以程式設計方式移除控制項。當 Shutdown 事件發生時,文件的 UI 項目便無法再使用。如果您想要在應用程式關閉之前移除控制項,請將程式碼加入至其他事件處理常式,例如 BeforeClose 或 BeforeSave。

事件處理常式方法宣告

每個事件處理常式方法宣告都會接收相同的引數:sender 和 e。在 Excel 中,sender 引數會參考工作表 (例如 Sheet1 或 Sheet2);在 Word 中,sender 引數則會參考文件。e 引數會參考事件的標準引數 (在此情況下不會使用)。

下列程式碼範例顯示 Word 文件層級專案中的預設事件處理常式。

Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

下列程式碼範例顯示 Excel 文件層級專案中的預設事件處理常式。

注意事項:

下列程式碼範例顯示 Sheet1 類別中的事件處理常式。其他主項目類別中的事件處理常式名稱會對應至這個類別名稱。例如,在 Sheet2 類別中,Startup 事件處理常式的名稱為 Sheet2_Startup。在 ThisWorkbook 類別中,Startup 事件處理常式的名稱為 ThisWorkbook_Startup。

Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub Sheet1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

應用程式層級增益集

Visual Studio Tools for Office 會在應用程式層級增益集中提供產生的程式碼。這個程式碼會引發兩個不同的事件:StartupShutdown

Startup 事件

在載入增益集且組件中的所有初始設定程式碼都已執行之後,就會引發 Startup 事件。這個事件是由所產生程式碼檔中的 ThisAddIn_Startup 方法處理。

ThisAddIn_Startup 事件處理常式中的程式碼是第一個執行的使用者程式碼,除非您的增益集會覆寫 RequestComAddInAutomationService 方法:在這個情況下,ThisAddIn_Startup 事件處理常式會在 RequestComAddInAutomationService 之後呼叫。在 2007 Microsoft Office system 的增益集中,如果您的增益集會覆寫 RequestService 方法,則 ThisAddIn_Startup 事件處理常式中的程式碼也會在該方法之後呼叫。

如需增益集啟動順序的詳細資訊,請參閱應用程式層級增益集的架構

Shutdown 事件

當已載入您程式碼的應用程式定義域即將卸載時,會引發 Shutdown 事件。這個事件是由所產生程式碼檔中的 ThisAddIn_Shutdown 方法處理。卸載增益集時,這個事件處理常式會是最後一個執行的使用者程式碼。

請參閱

工作

HOW TO:建立 Visual Studio Tools for Office 專案

概念

開發 Office 方案

文件層級自訂程式設計

應用程式層級增益集程式設計

Visual Studio Tools for Office 專案範本概觀