逐步解說:使用功能區設計工具建立自訂的索引標籤

更新:2010 年 9 月

本逐步解說將示範,如何使用功能區設計工具建立自訂的功能區索引標籤。 您可以使用功能區設計工具加入和放置自訂索引標籤上的控制項。

**適用於:**本主題中的資訊適用於下列應用程式的文件層級專案和應用程式層級專案:Excel 2007 和 Excel 2010、InfoPath 2010、Outlook 2007 和 Outlook 2010、PowerPoint 2007 和 PowerPoint 2010、Project 2010、Visio 2010、Word 2007 和 Word 2010。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

這個逐步解說將說明下列工作:

  • 建立執行窗格。

  • 建立自訂索引標籤。

  • 使用自訂索引標籤上的按鈕隱藏和顯示執行窗格。

注意事項注意事項

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

必要條件

您需要下列元件才能完成此逐步解說:

-

包含 Microsoft Office 開發者工具的 Visual Studio 2010 版本。 如需詳細資訊,請參閱[設定電腦以開發 Office 方案](bb398242\(v=vs.100\).md)。
  • Microsoft Office Excel 2007 或 Excel 2010。 

視訊的連結如需本主題的影片版本,請參閱影片 HOW TO:使用功能區設計工具建立自訂索引標籤 (英文)。 如需觀看相關示範影片,請參閱如何使用功能區設計工具自訂 Excel 中的功能區?(英文)。

建立 Excel 活頁簿專案

所有 Office 應用程式使用功能區設計工具的步驟大部分相同。 這個範例會使用 Excel 活頁簿。

建立 Excel 活頁簿專案

  • 建立名稱為 MyExcelRibbon 的 Excel 活頁簿專案。 如需詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案

    Visual Studio 會在設計工具中開啟新的活頁簿,並將 [MyExcelRibbon] 專案加入至 [方案總管]。

建立執行窗格

將兩個自訂的執行窗格加入至專案。 您稍後會將兩個按鈕加入至自訂索引標籤,用來顯示和隱藏這些執行窗格。

建立執行窗格

  1. 在 [專案] 功能表上,按一下 [加入新項目]。

  2. 在 [加入新項目] 對話方塊中選取 [ActionsPaneControl],再按一下 [加入]。

    ActionsPaneControl1.cs 或 ActionsPaneControl1.vb 檔隨即在設計工具中開啟。

  3. 從 [工具箱] 的 [通用控制項] 索引標籤將標籤加入至設計工具介面。

  4. 在 [屬性] 視窗中,將 label1 的 [Text] 屬性設為 Actions Pane 1。

  5. 重複步驟 1 到 5,建立第二個執行窗格和標籤。 將第二個標籤的 [Text] 屬性設為 Actions Pane 2。

建立自訂索引標籤

其中一個 Office 應用程式設計方針是使用者應一律具有 Office 應用程式 UI 的控制項。 若要為執行窗格加入這個功能,您可以加入顯示和隱藏功能區上自訂索引標籤的每個執行窗格的按鈕。 若要建立自訂索引標籤,請將 [功能區 (視覺化設計工具)] 項目加入至專案。 設計工具可協助您加入及定位控制項、設定控制項屬性及處理控制項事件。

建立自訂索引標籤

  1. 在 [專案] 功能表上,按一下 [加入新項目]。

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

  3. 將新功能區的名稱改成 MyRibbon,然後按一下 [加入]。

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

  4. 在 [功能區設計工具] 中,按一下預設索引標籤。

  5. 在 [屬性] 視窗中展開 [ControlId] 屬性,然後將 [ControlIdType] 屬性設為 [自訂]。

  6. 將 [ControlId] 屬性設為「我的自訂索引標籤」。

  7. 在功能區設計工具中,按一下 [group1]。

  8. 在 [屬性] 視窗中,將 [Label] 屬性設為 Actions Pane Manager。

  9. 從 [工具箱] 的 [Office 功能區控制項] 索引標籤將按鈕拖曳至 [group1]。

  10. 按一下以選取 [button1]。

  11. 在 [屬性] 視窗中,將 [Label] 屬性設為 Show Actions Pane 1。

  12. 將第二個按鈕加入至 [group1],然後將 [Label] 屬性設為 Show Actions Pane 2。

  13. 從 [工具箱] 的 [Office 功能區控制項] 索引標籤將 [ToggleButton] 控制項拖曳至 [group1]。

  14. 將 [Label] 屬性設為 Hide Actions Pane。

使用自訂索引標籤上的按鈕隱藏和顯示執行窗格

最後一個步驟是加入回應使用者的程式碼。 針對兩個按鈕的 Click 事件和切換按鈕的 Click 事件加入事件處理常式。 將程式碼加入至隱藏和顯示執行窗格的事件處理常式。

使用自訂索引標籤中的按鈕隱藏和顯示執行窗格

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 [MyRibbon.cs] 或是 [MyRibbon.vb],然後按一下 [檢視程式碼]。

  2. 將下列程式碼加入至 MyRibbon 類別的頂端。 這個程式碼會建立兩個執行窗格物件。

    Dim actionsPane1 As New ActionsPaneControl1()
    Dim actionsPane2 As New ActionsPaneControl2()
    
    ActionsPaneControl1 actionsPane1 = new ActionsPaneControl1();
    ActionsPaneControl2 actionsPane2 = new ActionsPaneControl2();
    
  3. 以下列程式碼取代 MyRibbon_Load 方法。 這個程式碼會將執行窗格物件加入至 ActionsPane.Controls 集合,並且隱藏物件不提供檢視。 Visual C# 程式碼也會將委派附加至數個功能區控制項事件。

    Private Sub MyRibbon_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
        Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1)
        Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane2)
        actionsPane1.Hide()
        actionsPane2.Hide()
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
    End Sub
    
    private void MyRibbon_Load(object sender, RibbonUIEventArgs e)
    {
        Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1);
        Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane2);
        actionsPane1.Hide();
        actionsPane2.Hide();
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = false;
    
        // Use the following code in projects that target the .NET Framework 4.
        this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(
            this.button1_Click);
        this.button2.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(
            this.button2_Click);
        this.toggleButton1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(
            this.toggleButton1_Click);
    
        // For .NET Framework 3.5 projects, use the following code instead.
        // this.button1.Click += new EventHandler<RibbonControlEventArgs>(button1_Click);
        // this.button2.Click += new EventHandler<RibbonControlEventArgs>(button2_Click);
        // this.toggleButton1.Click += new EventHandler<RibbonControlEventArgs>(toggleButton1_Click);
    }
    

    如需目標為 .NET Framework 4 和 .NET Framework 3.5 的專案在 Visual C# 程式碼範例中彼此之間差異的詳細資訊,請參閱更新您要移轉至 .NET Framework 4 之 Office 專案中的功能區自訂

  4. 將下列三個事件處理常式方法加入至 MyRibbon 類別。 這些方法會處理兩個按鈕的 Click 事件及切換按鈕的 Click 事件。 button1 和 button2 的事件處理常式會顯示交替的執行窗格。 toggleButton1 的事件處理常式則會顯示和隱藏作用中的執行窗格。

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
            Handles Button1.Click
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
        actionsPane2.Hide()
        actionsPane1.Show()
        ToggleButton1.Checked = False
    End Sub
    
    Private Sub Button2_Click(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
            Handles Button2.Click
    
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
        actionsPane1.Hide()
        actionsPane2.Show()
        ToggleButton1.Checked = False
    
    End Sub
    
    
    Private Sub ToggleButton1_Click(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
            Handles ToggleButton1.Click
    
        If ToggleButton1.Checked Then
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False
        Else
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True
        End If
    
    End Sub
    
    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true;
        actionsPane2.Hide();
        actionsPane1.Show();
        ToggleButton1.Checked = false;
    }
    
    private void button2_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true;
        actionsPane1.Hide();
        actionsPane2.Show();
        ToggleButton1.Checked = false;
    
    }
    
    private void toggleButton1_Click(object sender, RibbonControlEventArgs e)
    {
        if (toggleButton1.Checked == true)
        {
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = false;
        }
        else
        {
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true;
        }
    
    }
    

測試自訂索引標籤

當您執行專案時,Excel 會啟動。[我的自訂索引標籤] 索引標籤會出現在功能區上。 按一下 [我的自訂索引標籤] 上的按鈕,即可顯示和隱藏執行窗格。

測試自訂索引標籤

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

  2. 按一下 [我的自訂索引標籤] 索引標籤。

  3. 在 [Custom Actions Pane Manager] 群組中按一下 [Show Actions Pane 1]。

    執行窗格隨即出現,並顯示標籤 Actions Pane 1。

  4. 按一下 [Show Actions Pane 2]。

    執行窗格隨即出現,並顯示標籤 Actions Pane 2。

  5. 按一下 [Hide Actions Pane]。

    執行窗格將不再顯示。

後續步驟

您可以透過下列主題,進一步了解自訂 Office UI 的方式:

請參閱

工作

HOW TO:開始自訂功能區

HOW TO:變更功能區索引標籤的位置

HOW TO:自訂內建索引標籤

HOW TO:自訂 Microsoft Office 功能表

概念

在執行階段存取功能區

功能區設計工具

自訂 Outlook 的功能區

功能區物件模型概觀

其他資源

功能區概觀

變更記錄

日期

記錄

原因

2010 年 9 月

新增 .NET Framework 3.5 程式碼範例。

內容 Bug 修正。

2010 年 9 月

新增步驟以確保本逐步解說會產生自訂索引標籤。 在進行這項變更以前,控制項只會出現在 [增益集] 索引標籤中。

內容 Bug 修正。