演练:添加菜单到 Visual Studio 菜单栏 (c#)

本演练演示如何添加菜单。 Visual Studio 集成开发环境 (ide) 的菜单栏 (IDE)。 IDE 菜单栏包含菜单类别 (如 文件编辑视图窗口帮助

通过完成本演练,您可以创建一个包含命令名为 TestMenu 的菜单。 如果命令不可用,则个未显示菜单。

菜单在项目的 .vsct 文件中声明。 有关菜单和 .vsct 文件的更多信息,请参见 命令、菜单和工具栏

系统必备

若要完成本演练,您必须安装 Visual Studio 2010 SDK。

备注

有关 Visual Studio SDK 的更多信息,请参见 扩展 Visual Studio 概述。若要查找有关中所列如何下载 Visual Studio SDK,请 Visual Studio Extensibility Developer Center 参见 MSDN 网站上。

Visual Studio 包 " 项目模板的位置

Visual Studio 包 " 项目模板可在 新项目 对话框的三个位置:

  • Visual Basic 扩展性下。 该项的默认语言是 Visual Basic。

  • C# 扩展性下。 该项目的默认语言是 C#。

  • 其他项目类型扩展性下。 该项的默认语言是 C++。

创建 VSPackage

创建 TopLevelMenu VSPackage

  1. 创建名为 TopLevelMenu的 VSPackage。 有关更多信息,请参见 演练:使用 Visual Studio 创建包模板的菜单命令

  2. Visual Studio 包 模板,则编程语言。 Visual C#Visual Basic,选择 菜单命令,设置命令名称。 测试命令,并将命令 ID 设置为 cmdidTestCommand。

创建在 IDE 菜单栏上的菜单

创建菜单

  1. 解决方案资源管理器,打开 TopLevelMenu.vsct。

    在文件末尾,包含多个 GuidSymbol 节点的 Symbols 节点。 在名为 “guidTopLevelMenuCmdSet”节点中,添加新的符号,如下所示:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. 创建一个空 Menus 节点。 Commands 节点,请在 Groups之前。

  3. 在 Menus 节点,创建以下 Menu 节点定义在注册的菜单步骤 2:

    <Menu guid="guidTopLevelMenuCmdSet"
    id="TopLevelMenu" priority="0x700" type="Menu">
      <Parent guid="guidSHLMainMenu"
              id="IDG_VS_MM_TOOLSADDINS" />
      <Strings>
        <ButtonText>TestMenu</ButtonText>
        <CommandName>TestMenu</CommandName>
      </Strings>
    </Menu>
    

    菜单的 guid 和 id 中的值设置为命令指定命令设置和给定菜单。

    父的 guid 和 id 值在包含工具和外接程序菜单 Visual Studio 菜单栏的部分确定菜单。

    CommandName 字符串的值指定应出现在菜单项。

  4. 更改 GUID/ID 如下对生成的 Group 节点的父节点,以便它与您创建的。菜单,例如:

     <Group guid="guidTopLevelMenuCmdSet" id="MyMenuGroup"
    priority="0x0600">
       <Parent guid="guidTopLevelMenuCmdSet" id="TopLevelMenu"/>
     </Group>
    

    这使该部件新菜单。

  5. 查找 Buttons 部分。 请注意 Visual Studio 包模板生成了其父设置为 MyMenuGroup的一个 Button 元素。 因此,此命令将出现在菜单。

生成和测试 TopLevelMenu 包

生成并测试 VSPackage

  1. 按 F5 打开测试环境调试模式 Visual Studio 的实例。 

  2. 菜单栏在 Visual Studio 测试环境中应包含在 分析 菜单之前确定的TestMenu菜单。

  3. TestMenu 菜单上,单击 测试命令

    消息框将出现并显示消息 “于 Company.TopLevelMenu.TopLevelMenuPackage.MenuItemCallback()”。 这指示新的命令工作。

请参见

其他资源

命令、菜单和工具栏的演练

命令、菜单和工具栏