共用方式為


逐步指南:將自訂工作窗格與功能區按鈕同步

本逐步解說示範如何建立自訂工作窗格,使用者可以透過按一下功能區上的切換按鈕來隱藏或顯示。 您應該一律建立使用者介面 (UI) 元素,例如按鈕,使用者可以按一下該元素來顯示或隱藏自訂工作窗格,因為 Microsoft Office 應用程式不提供使用者顯示或隱藏自訂工作窗格的預設方式。

適用於: 本主題中的資訊適用於 Outlook 的 VSTO 增益集專案。 如需詳細資訊,請參閱 Office 應用程式和專案類型所提供的功能

雖然本逐步解說特別使用 Excel,但逐步解說所示範的概念適用於上面列出的任何應用程式。

本逐步解說將說明下列工作:

  • 設計自訂工作窗格的 UI。

  • 將切換按鈕新增至功能區。

  • 將切換按鈕與自訂工作窗格同步處理。

備註

在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 Visual Studio IDE 個人化

先決條件

您需要下列組件才能完成本步驟解說:

建立增益集專案

在此步驟中,您將為 Excel 建立一個 VSTO 外掛程式專案。

建立新專案

  1. 使用 Excel 增益集專案範本,建立名稱為 SynchronizeTaskPaneAndRibbon 的 Excel 增益集專案。 如需詳細資訊,請參閱 如何:在 Visual Studio 中建立 Office 專案

    Visual Studio 會開啟 ThisAddIn.csThisAddIn.vb 程式碼檔案,並將 SynchronizeTaskPaneAndRibbon 專案新增至 [方案總管]。

將切換按鈕新增至功能區

其中一個 Office 應用程式設計指導方針是使用者應該一律控制 Office 應用程式 UI。 若要讓使用者控制自訂工作窗格,您可以新增功能區切換按鈕來顯示和隱藏工作窗格。 若要建立切換按鈕,請將 功能區 (視覺化設計工具) 項目新增至專案。 設計工具可協助您新增和定位控制項、設定控制項屬性,以及處理控制項事件。 如需詳細資訊,請參閱 功能區設計工具

將切換按鈕新增至功能區

  1. [專案] 功能表上,按一下 [新增專案]。

  2. 在 [新增項目] 對話方塊中,選取 [功能區(視覺化設計工具)]。

  3. 將新功能區的名稱變更為 ManageTaskPaneRibbon,然後按一下 [新增]。

    ManageTaskPaneRibbon.csManageTaskPaneRibbon.vb檔案會在功能區設計工具中開啟,並顯示預設索引標籤和群組。

  4. 在功能區設計工具中,按一下 group1

  5. [屬性] 視窗中,將 [標籤] 屬性設定為 [工作窗格管理員]。

  6. [工具箱] 的 [Office 功能區控制項] 索引標籤中,將 ToggleButton 拖曳到 [工作窗格管理員] 群組。

  7. 按一下 toggleButton1

  8. [屬性] 視窗中,將 [標籤] 屬性設定為 [顯示工作窗格]。

設計自訂工作窗格的使用者介面

自訂工作窗格沒有視覺化設計工具,但您可以使用您想要的版面配置來設計使用者控制項。 在本逐步解說稍後,您會將使用者控制項新增至自訂工作窗格。

設計自訂工作窗格的使用者介面

  1. [專案 ] 功能表上,按一下 [新增使用者控制項]。

  2. [新增專案] 對話方塊中,將使用者控制項的名稱變更為 TaskPaneControl,然後按一下 [新增]。

    使用者控制項會在設計工具中開啟。

  3. [工具箱] 的 [通用控制項] 索引標籤中,將 TextBox 控制項拖曳至使用者控制項。

建立自訂工作窗格

若要在 VSTO 增益集啟動時建立自訂工作窗格,請在 VSTO 增益集的事件處理常式中 Startup 將使用者控制項新增至工作窗格。 根據預設,自訂工作窗格將不可見。 在本逐步解說的稍後部分,您將新增程式碼,當使用者按一下您新增至功能區的切換按鈕時,這些程式碼將顯示或隱藏工作窗格。

建立自訂工作窗格

  1. [方案總管] 中,展開 [Excel]

  2. 以滑鼠右鍵按一下 ThisAddIn.csThisAddIn.vb ,然後按一下檢視 程式碼

  3. 將下列程式碼 ThisAddIn 新增至類別。 此程式碼會將 的 TaskPaneControl 實例宣告為 的成員 ThisAddIn

    private TaskPaneControl taskPaneControl1;
    private Microsoft.Office.Tools.CustomTaskPane taskPaneValue;
    
  4. 請將 ThisAddIn_Startup 事件處理程序替換為以下程式碼。 此程式碼會將物件TaskPaneControl新增至CustomTaskPanes欄位,但不會顯示自訂工作窗格 (預設情況下,Visible類別的CustomTaskPane屬性為 false)。 Visual C# 程式碼也會將事件處理常式附加至 VisibleChanged 事件。

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        taskPaneControl1 = new TaskPaneControl();
        taskPaneValue = this.CustomTaskPanes.Add(
            taskPaneControl1, "MyCustomTaskPane");
        taskPaneValue.VisibleChanged +=
            new EventHandler(taskPaneValue_VisibleChanged);
    }
    
  5. 將下列方法新增至 ThisAddIn 類別。 方法用來處理 VisibleChanged 事件。 當使用者按一下 [關閉] 按鈕 (X) 來關閉工作窗格時,這個方法會更新功能區上切換按鈕的狀態。

    private void taskPaneValue_VisibleChanged(object sender, System.EventArgs e)
    {
        Globals.Ribbons.ManageTaskPaneRibbon.toggleButton1.Checked = 
            taskPaneValue.Visible;
    }
    
  6. 將下列屬性 ThisAddIn 新增至類別。 此屬性會將私人 taskPaneValue 物件公開給其他類別。 在這個逐步解說中稍後的步驟,您會將程式碼新增至使用此屬性的 MyRibbon 類別。

    public Microsoft.Office.Tools.CustomTaskPane TaskPane
    {
        get
        {
            return taskPaneValue;
        }
    }
    

使用切換按鈕隱藏和顯示自訂工作窗格

最後一個步驟是新增程式碼,以在使用者按一下功能區上的切換按鈕時顯示或隱藏自訂工作窗格。

使用切換按鈕顯示和隱藏自訂工作窗格

  1. 在功能區設計工具中,按兩下 [ 顯示工作窗格] 切換按鈕。

    Visual Studio 會自動產生名為 toggleButton1_Click的事件處理常式,以處理 Click 切換按鈕的事件。 Visual Studio 也會在程式碼編輯器中開啟 MyRibbon.csMyRibbon.vb 檔案。

  2. 請將 toggleButton1_Click 事件處理程序替換為以下程式碼。 當使用者按一下切換按鈕時,此程式碼會顯示或隱藏自訂工作窗格,視是否按下切換按鈕而定。

    private void toggleButton1_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisAddIn.TaskPane.Visible = ((RibbonToggleButton)sender).Checked;
    }
    

測試外掛

當您執行專案時,Excel 會開啟,但不會顯示自訂工作窗格。 按一下功能區上的切換按鈕以測試程式碼。

要測試您的 VSTO 增益集

  1. 請按 F5 執行您的專案。

    確認 Excel 會開啟,功能區上會出現 [增益集] 索引標籤。

  2. 按一下功能區上的 附加元件 標籤。

  3. [工作窗格管理員 ] 群組中,按一下 [ 顯示工作窗格 ] 切換按鈕。

    確認當您按一下切換按鈕時,工作窗格會交替顯示和隱藏。

  4. 當工作窗格可見時,按一下工作窗格角落的 [關閉 ] 按鈕 (X)。

    確認切換按鈕似乎未按下。

後續步驟

您可以從下列主題深入瞭解如何建立自訂工作窗格: