RibbonMenu 接口

定义

表示功能区选项卡或 Microsoft Office 菜单上的菜单。

public interface class RibbonMenu : IDisposable, Microsoft::Office::Tools::Ribbon::RibbonControl, System::ComponentModel::IComponent
[System.Runtime.InteropServices.Guid("59dc7f42-aca2-484a-9622-1ee34a6cfd7d")]
public interface RibbonMenu : IDisposable, Microsoft.Office.Tools.Ribbon.RibbonControl, System.ComponentModel.IComponent
[<System.Runtime.InteropServices.Guid("59dc7f42-aca2-484a-9622-1ee34a6cfd7d")>]
type RibbonMenu = interface
    interface RibbonControl
    interface RibbonComponent
    interface IComponent
    interface IDisposable
Public Interface RibbonMenu
Implements IComponent, IDisposable, RibbonControl
属性
实现

示例

以下示例演示如何在运行时向现有菜单添加和填充子菜单。

有关在运行时更新控件并涉及使用 linQ (LINQ) Language-Integrated 查询从 AdventureWorks 示例数据库获取数据的更丰富示例,请参阅 演练:在运行时更新功能区上的控件

若要运行此代码示例,必须先执行以下步骤:

  1. 功能区 (Visual Designer) 项添加到 Office 项目。

  2. 将组添加到自定义选项卡。

  3. 将菜单添加到组。

  4. 将菜单 的 (Name) 属性设置为 CustomerMenu

  5. 将菜单的 Label 属性设置为 Customers

  6. 将菜单的 Dynamic 属性设置为 true

    这样,在功能区加载到 Office 应用程序中之后,就可以在运行时添加和删除菜单上的控件。

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

    // Second sub-menu
    RibbonMenu subMenu2 = this.Factory.CreateRibbonMenu();
    subMenu2.Dynamic = true;
    subMenu2.Label = "N - Z";
    subMenu2.Items.Add(this.Factory.CreateRibbonToggleButton());
    ((RibbonToggleButton)subMenu2.Items.Last()).Label = "Robinson, Alex";
    CustomerMenu.Items.Add(subMenu2);
}
Private Sub PopulateCustomerMenu()
    ' Add two sub-menus to EmployeeMenu and populate each sub-menu
    ' First sub-menu
    Dim subMenu1 As RibbonMenu = Me.Factory.CreateRibbonMenu()
    subMenu1.Dynamic = True
    subMenu1.Label = "A - M"
    subMenu1.Items.Add(Me.Factory.CreateRibbonToggleButton())
    CType(subMenu1.Items.Last(), RibbonToggleButton).Label = "Hall, Don"
    subMenu1.Items.Add(Me.Factory.CreateRibbonToggleButton())
    CType(subMenu1.Items.Last(), RibbonToggleButton).Label = "Valdez, Rachel"
    CustomerMenu.Items.Add(subMenu1)

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

End Sub

注解

“菜单”控件从“工具箱”的“Office 功能区控件”选项卡拖动到功能区Designer时,Visual Studio 会创建一个 RibbonMenu 对象。

可以在运行时使用 CreateRibbonMenu 对象的 方法RibbonFactory创建 RibbonMenu

可通过两种方法来访问 RibbonFactory 对象:

  • 通过使用 Ribbon 类的 Factory 属性。 可从 Ribbon 类中的代码使用此方法。

  • 通过使用 Globals.Factory.GetRibbonFactory 方法。 可从 Ribbon 类外的代码使用此方法。

常见任务

下表列出了对常见任务有用的成员。 所有这些任务都可以在设计时执行。 其中一些任务只能在运行时在将功能区加载到 Office 应用程序之前或在运行时将控件添加到动态菜单之前执行。 有关详细信息,请参阅 功能区对象模型概述

任务 成员
在菜单上显示图像。 Image使用 或 ImageName 属性。

还可以重复使用内置功能区控件中显示的图像。 为此,请将 设置为 OfficeImageId 要显示为菜单图标的内置 Microsoft Office 图像的 ID。
更改菜单的大小。 ControlSize 属性设置为所需的值。 例如,对于大菜单,请将其设置为 Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge
更改菜单中项的大小。 ItemSize 属性设置为所需的值。 例如,若要显示较大的项,请将其设置为 Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge
在运行时启用对菜单的更改 (例如,启用在运行时) 添加到菜单中的控件。 Dynamic 属性设置为 true
访问菜单中的控件、向菜单添加控件或从菜单中删除控件。 使用 Items 属性。
将菜单添加到 Microsoft Office 菜单、组或可包含菜单的另一个控件。 RibbonMenu将 添加到 Items Microsoft Office 菜单、组或控件的 属性。

注意

此接口由 Visual Studio Tools for Office Runtime 实现。 不应在代码中实现此接口。 有关更多信息,请参见 Visual Studio Tools for Office Runtime Overview

使用情况

本文档介绍面向 .NET Framework 4 或更高版本的 Office 项目中所用的此类型的版本。 在面向 .NET Framework 3.5 的项目中,此类型可能具有不同的成员,因此本文档为此类型提供的代码示例可能并不适用。 有关在面向 .NET Framework 3.5 的项目中使用此类型的文档,请参阅 Visual Studio 2008 文档中的以下参考部分:http://go.microsoft.com/fwlink/?LinkId=160658

属性

ControlSize

获取或设置菜单的大小。

Description

获取或设置当前菜单上显示的文本。

Dynamic

获取或设置一个值,该值指示是否可在运行时修改菜单。

Enabled

获取或设置一个值,该值指示是否启用此 RibbonControl

(继承自 RibbonControl)
Id

获取一个字符串,Microsoft Office 将用其标识此 RibbonControl 对象。

(继承自 RibbonControl)
Image

获取或设置在菜单上显示的图像。

ImageName

获取或设置一个名称,该名称可用于在 LoadImage 事件处理程序中标识菜单的图像。

Items

获取菜单上的控件的集合。

ItemSize

获取或设置菜单上控件的大小。

KeyTip

获取或设置菜单的键盘访问键。

Label

获取或设置菜单所显示的文本。

Name

获取或设置此 RibbonComponent 的名称。

(继承自 RibbonComponent)
OfficeImageId

如果要使用内置 Microsoft Office 图标,请获取或设置要在菜单上显示的图像。

Parent

获取一个 RibbonComponent,表示此 RibbonComponent 的父级。

(继承自 RibbonComponent)
Position

获取或设置菜单的位置(如果该菜单在 Microsoft Office 菜单上)。

Ribbon

获取包含控件层次结构的顶级 Ribbon 对象。

(继承自 RibbonComponent)
RibbonUI

获取 Microsoft Office 应用程序提供给功能区扩展性代码的 IRibbonUI 实例。

(继承自 RibbonComponent)
ScreenTip

获取或设置用户将指针移到菜单上方时显示的提示文本。

ShowImage

获取或设置一个值,该值指示与菜单关联的图像是否可见。

ShowLabel

获取或设置一个值,该值指示菜单的标签是否可见。

SuperTip

获取或设置用户将指针移到菜单上时显示的多行提示文本。

Tag

获取或设置与此 RibbonComponent 关联的应用程序特定的数据。

(继承自 RibbonComponent)
Title

获取或设置标题,此标题在用户展开添加到 Microsoft Office 菜单的菜单时显示。

Visible

获取或设置一个值,该值指示此 RibbonControl 是否可见。

(继承自 RibbonControl)

方法

PerformDynamicLayout()

如果 RibbonComponent 具有一个动态父级(如动态菜单)且布局未挂起,则调用父控件的 Microsoft.Office.Core.IRibbonUI.InvalidateControl 方法。

(继承自 RibbonComponent)
PerformLayout()

如果 具有一个父级,且布局未挂起,则调用 RibbonComponentMicrosoft.Office.Core.IRibbonUI.InvalidateControl。

(继承自 RibbonComponent)
ResumeLayout()

取消 SuspendLayout() 方法的效果。

(继承自 RibbonComponent)
ResumeLayout(Boolean)

取消 SuspendLayout() 方法的效果。

(继承自 RibbonComponent)
SuspendLayout()

阻止 Microsoft Office 应用程序刷新功能区上的控件状态。

(继承自 RibbonComponent)

事件

ItemsLoading

在运行时将控件或嵌套菜单加载到当前菜单中时发生。

适用于