共用方式為


RibbonMenu 類別 (2007 系統)

更新:2007 年 11 月

表示功能區索引標籤或 Microsoft Office 功能表上的功能表。

命名空間:  Microsoft.Office.Tools.Ribbon
組件:  Microsoft.Office.Tools.Common.v9.0 (在 Microsoft.Office.Tools.Common.v9.0.dll 中)

語法

<ToolboxBitmapAttribute(GetType(RibbonMenu), "RibbonMenu.bmp")> _
Public NotInheritable Class RibbonMenu _
    Inherits RibbonControl

Dim instance As RibbonMenu
[ToolboxBitmapAttribute(typeof(RibbonMenu), "RibbonMenu.bmp")]
public sealed class RibbonMenu : RibbonControl

備註

當您將 [Menu] 控制項從 [工具箱] 的 [Office 功能區控制項] 索引標籤拖曳到 [功能區設計工具] 時,Visual Studio Tools for Office 會建立 RibbonMenu 類別的執行個體。

一般工作

下表列出適用於一般工作的成員。這些工作都可以在設計階段進行。但其中有些工作則只能在功能區載入至 Office 應用程式之前的執行階段,或在控制項加入至動態功能表之前的執行階段進行。如需詳細資訊,請參閱功能區物件模型概觀

工作

成員

在功能表上顯示影像。

使用 ImageImageName 屬性。

您也可以重複使用出現在內建功能區控制項中的影像。若要這樣做,請將 OfficeImageId 設定為您要當做功能表圖示顯示之內建 Microsoft Office 影像的 ID。

變更功能表的大小。

ControlSize 屬性設定為您想要的值。例如,對於大型功能表,將它設定為 Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge

變更功能表中項目的大小。

ItemSize 屬性設定為您想要的值。例如,若要顯示較大的項目,請將它設定為 Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge

允許在執行階段變更功能表 (例如,允許在執行階段將控制項加入至功能表)。

Dynamic 屬性設定為 true。

存取功能表中的控制項、加入控制項至功能表或移除功能表中的控制項。

使用 Items 屬性。

將功能表加入至 Microsoft Office 功能表、群組,或加入至另一個可包含功能表的控制項。

使用 RibbonMenu 建構函式 (Constructor) 建立 RibbonMenu 類別的執行個體,然後將新的 RibbonMenu 加入至 Microsoft Office 功能表、群組或控制項的 Items 屬性。

範例

下列範例示範如何在執行階段將子功能表加入和填入 (Populate) 至現有的功能表。

如需更多在執行階段更新控制項,且涉及使用 Language-Integrated Queries (LINQ),從 AdventureWorks 範例資料庫取得資料的範例,請參閱逐步解說:在執行階段更新功能區中的控制項

若要執行這個程式碼範例,您必須先執行下列步驟:

  1. 將 [功能區 (視覺化設計工具)] 項目加入至 Visual Studio Tools for Office 專案。

  2. 將群組加入至自訂索引標籤。

  3. 將功能表加入至群組。

  4. 將功能表的 [(Name)] 屬性設定為 CustomerMenu。

  5. 將功能表的 [Label] 屬性設定為 Customers。

  6. 將功能表的 [Dynamic] 屬性設定為 true。

    這樣一來,您就可以在功能區載入至 Office 應用程式後的執行階段,將項目加入至功能表或從功能表移除項目。

Private Sub PopulateCustomerMenu()
    ' Add two sub-menus to EmployeeMenu and populate each sub-menu
    ' First sub-menu
    Dim subMenu1 As New RibbonMenu()
    subMenu1.Dynamic = True
    subMenu1.Label = "A - M"
    subMenu1.Items.Add(New RibbonToggleButton())
    CType(subMenu1.Items.Last(), RibbonToggleButton).Label = "Hall, Don"
    subMenu1.Items.Add(New RibbonToggleButton())
    CType(subMenu1.Items.Last(), RibbonToggleButton).Label = "Valdez, Rachel"
    CustomerMenu.Items.Add(subMenu1)

    ' Second sub-menu
    Dim subMenu2 As New RibbonMenu()
    subMenu2.Dynamic = True
    subMenu2.Label = "N - Z"
    subMenu2.Items.Add(New RibbonToggleButton())
    CType(subMenu2.Items.Last(), RibbonToggleButton).Label = "Robinson, Alex"
    CustomerMenu.Items.Add(subMenu2)

End Sub
private void PopulateCustomerMenu()
{
    // Add two sub-menus to EmployeeMenu and populate each sub-menu
    // First sub-menu
    RibbonMenu subMenu1 = new RibbonMenu();
    subMenu1.Dynamic = true;
    subMenu1.Label = "A - M";
    subMenu1.Items.Add(new RibbonToggleButton());
    ((RibbonToggleButton)subMenu1.Items.Last()).Label = "Hall, Don";
    subMenu1.Items.Add(new RibbonToggleButton());
    ((RibbonToggleButton)subMenu1.Items.Last()).Label = "Valdez, Rachel";
    CustomerMenu.Items.Add(subMenu1);

    // Second sub-menu
    RibbonMenu subMenu2 = new RibbonMenu();
    subMenu2.Dynamic = true;
    subMenu2.Label = "N - Z";
    subMenu2.Items.Add(new RibbonToggleButton());
    ((RibbonToggleButton)subMenu2.Items.Last()).Label = "Robinson, Alex";
    CustomerMenu.Items.Add(subMenu2);
}

繼承階層架構

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      Microsoft.Office.Tools.Ribbon.RibbonComponent
        Microsoft.Office.Tools.Ribbon.RibbonControl
          Microsoft.Office.Tools.Ribbon.RibbonMenu

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

RibbonMenu 成員

Microsoft.Office.Tools.Ribbon 命名空間

其他資源

功能區概觀

功能區設計工具

功能區物件模型概觀

HOW TO:開始自訂功能區