如何:向快捷菜单添加命令

使用应用程序级外接程序,本主题演示如何将命令添加到 Office 应用程序中的快捷菜单。

**适用于:**本主题中的信息适用于 Office 2013 和 Office 2010 的文档级项目和应用程序级项目。请参见按 Office 应用程序和项目类型提供的功能

将命令添加到 Office 的快捷菜单

  1. 添加一个 功能区 XML 项目组合到一个文档级项目或应用程序级项目。有关更多信息,请参见如何:开始自定义功能区。在 ... 中

  2. 解决方案资源管理器、选择 ThisAddin.csThisAddin.vb

  3. 在菜单栏上,依次选择 视图代码

    ThisAddin 选件类文件将在代码编辑器中打开。

  4. 向**“ThisAddin”**类中添加下面的代码。这段代码重写 CreateRibbonExtensibilityObject 方法,将功能区 XML 类返回给 Office 应用程序。

    Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
        Return New Ribbon1()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
          return new Ribbon1();
    }
    
  5. 解决方案资源管理器,选择功能区 XML 文件。默认情况下,功能区 XML 文件名为 Ribbon1.xml。

  6. 在菜单栏上,依次选择 视图代码

    功能区 XML 文件将在代码编辑器中打开。

  7. 介绍快捷菜单和控件要添加到快捷菜单的代码编辑器中,添加 XML。

    下面的示例将一个按钮,菜单,并且,对于快捷菜单中的一个库控件运行的文档。此快捷菜单控件 ID 是 ContextMenuText。有关完整的 Office 2010 快捷控件 ID,请参见 Office 2010 帮助文件:Office fluent 用户界面控件标识符

    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="https://schemas.microsoft.com/office/2009/07/customui">
      <contextMenus>
        <contextMenu idMso="ContextMenuText">
          <button id="MyButton" label="My Button" insertBeforeMso="HyperlinkInsert" onAction="GetButtonID" />
          <menu id="MySubMenu" label="My Submenu" >
            <button id="MyButton2" label="Button on submenu" />
          </menu>
          <gallery id="galleryOne" label="My Gallery">
            <item id="item1" imageMso="HappyFace" />
            <item id="item2" imageMso="HappyFace" />
            <item id="item3" imageMso="HappyFace" />
            <item id="item4" imageMso="HappyFace" />
          </gallery>
        </contextMenu>
      </contextMenus>
    </customUI>
    
  8. 解决方案资源管理器,选择 MyRibbon.csMyRibbon.vb

  9. 添加回调方法添加到您要处理的每个控件的 Ribbon1 选件类。

    下列回调方法处理 我的按钮 按钮。此代码添加一个到活动在放在的当前位置文档。

    Public Sub GetButtonID(ByVal control As Office.IRibbonControl)
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        currentRange.Text = "This text was added by the context menu named My Button."
    End Sub
    
    public void GetButtonID(Office.IRibbonControl control)
    {
        Microsoft.Office.Interop.Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the context menu named My Button.";
    }
    

请参见

任务

演练:创建书签的快捷菜单

概念

Office 解决方案中的可选参数

其他资源

Office UI 自定义

自定义在 Office 的上下文菜单 2010 中