01.visual studio 2017添加菜单
创建项目
- 文件--新建项目
- 如果新建项目 左侧没有扩展菜单,请安装即可
添加菜单
- 右键--添加新项
菜单设置
- 菜单设置文件: MyCommandPackage.vsct
<Buttons> <Button guid="guidMyCommandPackageCmdSet" id="MyCommandId" priority="0x0101" type="Button"> <Parent guid="guidMyCommandPackageCmdSet" id="MyMenuGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>菜单一</ButtonText> </Strings> </Button> <Button guid="guidMyCommandPackageCmdSet" id="MyCommandId" priority="0x0102" type="Button"> <Parent guid="guidMyCommandPackageCmdSet" id="MyMenuGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>菜单二</ButtonText> </Strings> </Button> </Buttons>
- 菜单位置设置
<Groups> <Group guid="guidMyCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/> </Group> </Groups>
<!--
id值说明:
IDM_VS_CTXT_SOLNNODE 是指的解决方案资源管理器里的解决方案 IDM_VS_CTXT_SOLNFOLDER 是指的解决方案资源管理器里的 解决方案里的文件夹,不是项目里的哈,这个文件夹是虚拟的,没有实际的文件夹映射 IDM_VS_CTXT_PROJNODE 是指的解决方案资源管理器里的项目 IDM_VS_CTXT_FOLDERNODE 是指的解决方案资源管理器里的项目里的文件夹 IDM_VS_CTXT_ITEMNODE 是指的解决方案资源管理器里的项目里的项,就例如cs、js文件
-->
点击事件
private MyCommand(Package package) { if (package == null) { throw new ArgumentNullException("package"); } this.package = package; OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; if (commandService != null) { var menuCommand01 = new CommandID(CommandSet, 0x0101); var menuItem = new MenuCommand(this.MenuItemCallback, menuCommand01); commandService.AddCommand(menuItem); var menuCommand02 = new CommandID(CommandSet, 0x0102); var menuItem02 = new MenuCommand(this.MenuItemCallback, menuCommand02); commandService.AddCommand(menuItem02); } }