tutorial: Agregar un submenú en un menú
Este tutorial se basa en la demostración en tutorial: Agregar un menú a la barra de menús de Visual Studio (C#) mostrando cómo agregar un submenú al menú de TestMenu .
un submenú es un menú secundario que aparece en otro menú. Un submenú se puede identificar mediante la flecha que sigue al nombre. Hacer clic en el nombre hace que el submenú y los comandos de mostrarse.
Este tutorial crea un submenú en un menú de la barra de menús de Visual Studio y coloca un nuevo comando en el submenú. el tutorial también implementa el nuevo comando.
Requisitos previos
Para completar este tutorial, debe instalar Visual Studio 2010 SDK.
Nota
Para obtener más información sobre el SDK de Visual Studio, vea Información general de Visual Studio que extiende.Para averiguar cómo descargar el SDK de Visual Studio, vea Centro para desarrolladores de extensibilidad de Visual Studio en el sitio web de MSDN.
Ubicaciones de la plantilla de proyecto paquete de Visual Studio
La plantilla de proyecto paquete de Visual Studio está disponible en tres ubicaciones en el cuadro de diálogo de Nuevo proyecto :
En extensibilidad de Visual Basic. El idioma predeterminado del proyecto es Visual Basic.
En extensibilidad de C#. El lenguaje predeterminado del proyecto es C#.
En La otra extensibilidad de los tipos de proyecto. El lenguaje predeterminado del proyecto es C++.
crear un VSPackage
para crear el TopLevelMenu VSPackage
Siga los pasos de tutorial: Agregar un menú a la barra de menús de Visual Studio (C#) para crear el menú al que la funcionalidad se agregan en este tutorial.
Los pasos de este tutorial se supone que el nombre del Paquete es TopLevelMenu, que es el nombre que se utiliza en tutorial: Agregar un menú a la barra de menús de Visual Studio (C#).
Agregar un submenú en un menú
Para agregar un submenú en un menú
En Explorador de soluciones, abra TopLevelMenu.vsct.
En la sección de <Symbols> , agregue un elemento de <IDSymbol> del submenú, uno para el grupo en el submenú, y otro para el comando, todos en el nodo de <GuidSymbol> denominado “guidTopLevelMenuCmdSet.” Es el mismo nodo que contiene el elemento de <IDSymbol> para el menú de nivel superior.
<IDSymbol name="SubMenu" value="0x1100"/> <IDSymbol name="SubMenuGroup" value="0x1150"/> <IDSymbol name="cmdidTestSubCommand" value="0x0105"/>
Agregue el submenú recién creado a la sección de <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>
El par de GUID/ID primario especifica el grupo de menús generado en tutorial: Agregar un menú a la barra de menús de Visual Studio (C#), y es un elemento secundario del menú de nivel superior.
Agregue el grupo de menús definido en el paso 2 a la sección de <Groups> y conviértala en un elemento secundario de submenú.
<Group guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" priority="0x0000"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenu"/> </Group>
agregue un nuevo elemento de <Button> a la sección de <Buttons> para definir el comando creado en el paso 2 como elemento en el submenú.
<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>
Nota
En archivos de .vsct, el elemento de <Button> es una construcción genérica que se utiliza para representar los botones, los elementos de menú, y cualquier otro elemento (UI) de la interfaz de usuario que un usuario puede hacer clic para ejecutar un comando.
En Explorador de soluciones, haga clic con el botón secundario TopLevelMenu.vsct y haga clic en Volver a generar.
Esto compila el archivo de .vsct con los cambios. Corrija cualquier error que pueda producirse durante la compilación. (El error común utiliza el caso incorrecta para una etiqueta de GUID o un identificador de comando; Las etiquetas del GUID y los id. de comando son siempre distingue entre mayúsculas y minúsculas).
Presione F5 para abrir una instancia de entorno experimental de Visual Studio en modo de depuración.
Haga clic en TestMenu para ver un nuevo submenú denominado submenú. Haga clic en submenú para abrir el submenú y ver un nuevo comando, Comando sub de pruebas. Observe que al hacer clic de Comando sub de pruebas no hace nada.
Nota
Debe cerrar Visual Studio experimental antes de continuar a la sección siguiente.
agregar un comando
Para agregar compatibilidad para un comando en código administrado
PkgCmdID.cs abierto o PkgCmdID.vb en el editor de código.
Agregue el identificador de comando siguiente después del identificador existente del comando en la definición de clase de PkgCmdIDList .
public const int cmdidTestSubCmd = 0x105;
TopLevelMenuPackage.cs abierto o TopLevelMenuPackage.vb en el editor de código.
Busque la región oculta denominada Package Members y expándala haciendo clic en el signo más en el margen izquierdo.
Busque el método de Initialize y agregue las siguientes líneas justo después de la llamada al método de AddCommand . El símbolo SubItemCallback será indefinido hasta después del paso 6.
CommandID subCommandID = new CommandID( GuidList.guidTopLevelMenuCmdSet, (int)PkgCmdIDList.cmdidTestSubCmd); MenuCommand subItem = new MenuCommand( new EventHandler(SubItemCallback), subCommandID); mcs.AddCommand(subItem);
Al final de la clase, inmediatamente después del método de MenuItemCallback , agregue el método siguiente. Éste es el que se llama cuando se haga clic en el nuevo comando en el submenú.
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); }
Para compilar la solución, en el menú Compilar, haga clic en Compilar solución.
Presione F5 para abrir una instancia de Visual Studioexperimental.
En el menú de TestMenu , haga clic submenú y haga clic en Comando sub de pruebas. Debe aparecer un cuadro de mensaje y mostrar el texto, “dentro de Company.TopLevelMenu.TopLevelMenuPackage.SubItemCallback()”.
Vea también
Tareas
tutorial: Agregar un menú a la barra de menús de Visual Studio (C#)
Otros recursos
Tutoriales para los comandos, menús, barras de herramientas y