Пошаговое руководство: Добавление вложенное меню в меню
Построение данного пошагового руководства для демонстрации in Пошаговое руководство: Добавление меню в строке меню Visual Studio (C#) путем отображения, как добавить в подменю TestMenu меню.
Подменю вторичный меню, которое отображается в другие меню. Подменю может быть определено стрелками, следуйте по имени. Щелкните имя будет подменю и его команды должны отображаться.
В этом пошаговом руководстве создается в меню подменю в строке меню Visual Studio и помещает новую команду в подменю. В этом пошаговом руководстве также реализует новую команду.
Обязательные компоненты
Чтобы выполнить это пошаговое руководство, необходимо устанавливать SDK для Visual Studio 2010.
Примечание
Дополнительные сведения о пакете SDK для Visual Studio см. в разделе интеграция SDK Visual Studio.Чтобы узнать, как загрузить пакет SDK для Visual Studio см. в разделе Центр разработчиков расширяемости Visual Studio на веб-сайте MSDN.
Расположения для шаблона проекта пакета Visual Studio
Шаблон проекта пакета Visual Studio в выпуске 3 местах в Создать проект диалоговое окно:
Под расширяемость Visual Basic. Язык по умолчанию для проекта Visual Basic.
Под Расширяемость C#. Язык по умолчанию для проекта c#.
Под Другие типы проектов расширяемости. Язык по умолчанию для проекта C++.
Создание VSPackage
Создание TopLevelMenu VSPackage
Выполните шаги в пределах Пошаговое руководство: Добавление меню в строке меню Visual Studio (C#) создание меню, к которому добавляется функциональность в данном пошаговом руководстве.
Шаги в данном пошаговом руководстве предполагается, что имя VSPackage TopLevelMenu- имя, используемое в пределах Пошаговое руководство: Добавление меню в строке меню Visual Studio (C#).
Добавление в меню подменю
Добавление в меню подменю
IN Обозреватель решенийвыберите команду открыть TopLevelMenu.vsct.
в <Symbols> раздел добавить <IDSymbol> элемент вложенного меню, один для группы вложенного меню, а другой для команды, все <GuidSymbol> guidTopLevelMenuCmdSet узлом с именем "". Это тот же узел, содержащий <IDSymbol> для элемента меню верхнего уровня.
<IDSymbol name="SubMenu" value="0x1100"/> <IDSymbol name="SubMenuGroup" value="0x1150"/> <IDSymbol name="cmdidTestSubCommand" value="0x0105"/>
Добавьте вновь созданный в подменю <Menus> раздел.
<Menu guid="guidTopLevelMenuCmdSet" id="SubMenu" priority="0x0100" type="Menu"> <Parent guid="guidTopLevelMenuCmdSet" id="MyMenuGroup"/> <Strings> <ButtonText>Sub Menu</ButtonText> <CommandName>Sub Menu</CommandName> </Strings> </Menu>
Пара GUID/ID родительского элемента определяет группу, которая была создана в меню Пошаговое руководство: Добавление меню в строке меню Visual Studio (C#)и дочерний элемент меню верхнего уровня.
Добавьте группу меню, заданная в шаге 2 на <Groups> раздел и делает его дочерний элемент вложенного меню.
<Group guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" priority="0x0000"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenu"/> </Group>
Добавление новой <Button> элемент <Buttons> раздел, чтобы определить команду, созданный на шаге 2, как элемент вложенного меню.
<Button guid="guidTopLevelMenuCmdSet" id="cmdidTestSubCommand" priority="0x0000" type="Button"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" /> <Icon guid="guidImages" id="bmpPic2" /> <Strings> <CommandName>cmdidTestSubCommand</CommandName> <ButtonText>Test Sub Command</ButtonText> </Strings> </Button>
Примечание
В файлах, .vsct <Button> элемент родовая конструкция, которая используется для представления пунктов меню, кнопки и другие элементы пользовательского интерфейса (пользовательского интерфейса), которые пользователь может щелкнуть выполнить команду.
IN Обозреватель решенийщелкните правой кнопкой мыши и выберите команду TopLevelMenu.vsct Перестроить.
Это создает файл .vsct с изменениями. Исправьте все ошибки, которые могут возникнуть во время построения. (Наиболее распространенной ошибка использует неправильный аргументы, метка GUID или идентификатор команды. Метки GUID и идентификаторы команд всегда учитывается регистр.)
Нажмите клавишу F5, чтобы открыть экземпляр Visual Studio экспериментальном среда находится в режиме отладки.
Нажать TestMenu просмотреть новое именованное подменю sub меню. Нажать sub меню открытие подменю и увидеть новую команду " Проверьте sub - команда. Щелкните Обратите внимание, что Проверьте sub - команда не выполняет никаких действий.
Примечание
Необходимо закрыть экспериментальном Visual Studio перед тем как перейти к следующему шагу.
Добавление команды
Добавление поддержки команд в управляемом коде
Откройте PkgCmdID.cs или PkgCmdID.vb в редакторе кода.
Добавьте следующий идентификатор команды после существующего идентификатор команды в PkgCmdIDList определение класса.
public const int cmdidTestSubCmd = 0x105;
Откройте TopLevelMenuPackage.cs или TopLevelMenuPackage.vb в редакторе кода.
Найдите скрытая с надписью область Package Members и развернуть, щелкнув ввести положительного значения левое поле.
Найдите Initialize метод и добавляет следующие линии непосредственно после вызова AddCommand метод. Символ SubItemCallback не будут не определены до шага 6.
CommandID subCommandID = new CommandID( GuidList.guidTopLevelMenuCmdSet, (int)PkgCmdIDList.cmdidTestSubCmd); MenuCommand subItem = new MenuCommand( new EventHandler(SubItemCallback), subCommandID); mcs.AddCommand(subItem);
В конце класса, сразу после MenuItemCallback метод добавьте следующий метод. Это метод, который вызывается, когда нажимается новой команды во вложенном меню.
private void SubItemCallback(object sender, EventArgs e) { IVsUIShell uiShell = (IVsUIShell)GetService( typeof(SVsUIShell)); Guid clsid = Guid.Empty; int result; uiShell.ShowMessageBox( 0, ref clsid, "My Top Level Menu Package", string.Format(CultureInfo.CurrentCulture, "Inside {0}.SubItemCallback()", this.ToString()), string.Empty, 0, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST, OLEMSGICON.OLEMSGICON_INFO, 0, out result); }
В меню Построение выберите команду Построить решение, чтобы выполнить построение решения.
Нажмите клавишу F5, чтобы открыть экземпляр экспериментальном Visual Studio.
На TestMenu меню выберите команду sub меню затем перейдите Проверьте sub - команда. Окно сообщения должно появиться и появляться текст внутри Company.TopLevelMenu.TopLevelMenuPackage.SubItemCallback "()".
См. также
Задачи
Пошаговое руководство: Добавление меню в строке меню Visual Studio (C#)
Другие ресурсы
Пошаговые руководства, для команд меню, панелей инструментов