procedura dettagliata: Aggiunta di un sottomenu a un menu
Compilazione di questa procedura dettagliata sulla dimostrazione in procedura dettagliata: Aggiunta di un menu alla barra dei menu di Visual Studio (c#) mostrando come aggiungere un sottomenu al menu di TestMenu .
Un sottomenu è un menu secondario che viene visualizzato in un altro menu. Un sottomenu può essere identificato dalla freccia che segue il nome. Fare clic sul nome causa il sottomenu e i relativi controlli visualizzare.
In questa procedura dettagliata viene creato un sottomenu in un menu nella barra dei menu di Visual Studio e inserisce un nuovo comando del menu. La procedura dettagliata implementa anche il nuovo comando.
Prerequisiti
Per completare questa procedura dettagliata, è necessario installare Visual Studio 2010 SDK.
Nota
per ulteriori informazioni su Visual Studio SDK, vedere Cenni preliminari sull'estensione di Visual Studio.Per ulteriori informazioni su come scaricare Visual Studio SDK, vedere Centro per sviluppatori di estensibilità di Visual Studio il sito Web MSDN.
Posizioni del modello di progetto del pacchetto Visual Studio
Il modello di progetto del pacchetto Visual Studio è disponibile in tre percorsi nella finestra di dialogo di nuovo progetto :
In Estensibilità di Visual Basic. La lingua predefinita del progetto di Visual Basic.
In Estensibilità di C#. La lingua predefinita del progetto è c#.
In L'altra estensibilità dei tipi di progetto. La lingua predefinita del progetto è C++.
Creare un package VS
Per creare il TopLevelMenu VSPackage
Seguire i passaggi procedura dettagliata: Aggiunta di un menu alla barra dei menu di Visual Studio (c#) nella per creare il menu a cui la funzionalità viene aggiunta in questa procedura dettagliata.
I passaggi di questa procedura dettagliata si presuppone che il nome del pacchetto VS sia TopLevelMenu, che rappresenta il nome utilizzato in procedura dettagliata: Aggiunta di un menu alla barra dei menu di Visual Studio (c#).
Aggiunta di un sottomenu a un menu
Per aggiungere un sottomenu a un menu
in Esplora soluzioni, aprire TopLevelMenu.vsct.
Nella sezione di <Symbols> , aggiungere un elemento di <IDSymbol> per il sottomenu, uno per il gruppo di sottomenu e uno per il comando, tutti nel nodo di <GuidSymbol> denominato “guidTopLevelMenuCmdSet„. Si tratta dello stesso nodo contenente l'elemento di <IDSymbol> per il menu di primo livello.
<IDSymbol name="SubMenu" value="0x1100"/> <IDSymbol name="SubMenuGroup" value="0x1150"/> <IDSymbol name="cmdidTestSubCommand" value="0x0105"/>
Aggiungere il sottomenu appena creato nella sezione di <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>
La coppia di GUID/ID il padre specifica il gruppo di menu che è stato generato in procedura dettagliata: Aggiunta di un menu alla barra dei menu di Visual Studio (c#)e è un elemento figlio del menu di primo livello.
Aggiungere il gruppo del menu definito nel passaggio 2 alla sezione di <Groups> e impostarla come figlio del sottomenu.
<Group guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" priority="0x0000"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenu"/> </Group>
Aggiungere un nuovo elemento di <Button> alla sezione di <Buttons> per definire il comando creato nel passaggio 2 come elemento dal sottomenu.
<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
Nei file di .vsct, l'elemento di <Button> è un costrutto generico utilizzato per rappresentare i pulsanti, le voci di menu e tutti gli altri elementi (UI) dell'interfaccia utente che l'utente può fare clic per eseguire un comando.
In Esplora soluzioni, fare clic con il pulsante destro del mouse su TopLevelMenu.vsct quindi fare clic su Ricompilazione.
Utilizzando questo compila il file di .vsct con le modifiche. correggere tutti gli errori che possono verificarsi durante la compilazione. Nella maggior parte di errore comune l'utilizzo errato argomento per un'etichetta di GUID o un ID di comando; Le etichette e gli ID di comando di GUID sono sempre con distinzione tra maiuscole e minuscole.
Premere F5 per aprire un'istanza dell'ambiente sperimentale di Visual Studio in modalità di debug.
Fare clic TestMenu per visualizzare un nuovo sottomenu denominato sottomenu. Fare clic sottomenu per aprire il sottomenu e per un nuovo comando, In comando di test. Si noti che il valore fare clic Verificare il seguente comando non esegue alcuna operazione.
Nota
È necessario chiudere Visual Studio sperimentale prima di continuare alla sezione successiva.
Aggiunta di comando
Per aggiungere supporto per un comando nel codice gestito
Aprire PkgCmdID.cs o PkgCmdID.vb nell'editor di codice.
Aggiungere l'ID di comando dopo l'ID di comando esistente nella definizione della classe di PkgCmdIDList .
public const int cmdidTestSubCmd = 0x105;
Aprire TopLevelMenuPackage.cs o TopLevelMenuPackage.vb nell'editor di codice.
Cercare l'area nascosta contrassegnata Package Members e ampliarla facendo clic sul segno più () nel margine sinistro.
Individuare il metodo di Initialize e aggiungere le seguenti righe immediatamente dopo la chiamata al metodo di AddCommand . Il simbolo SubItemCallback sarà definito solo dopo il passaggio 6.
CommandID subCommandID = new CommandID( GuidList.guidTopLevelMenuCmdSet, (int)PkgCmdIDList.cmdidTestSubCmd); MenuCommand subItem = new MenuCommand( new EventHandler(SubItemCallback), subCommandID); mcs.AddCommand(subItem);
Alla fine della classe, subito dopo il metodo di MenuItemCallback , aggiungere il seguente metodo. Si tratta del metodo chiamato al nuovo comando nel sottomenu viene fatto clic su.
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); }
Scegliere Compila soluzione dal menu Compila per compilare la soluzione.
premere F5 per aprire un'istanza di Visual Studiosperimentale.
Scegliere dal menu di TestMenu , fare clic su sottomenu quindi fare clic su In comando di test. Una finestra di messaggio deve essere visualizzato e visualizza il testo “, interno Company.TopLevelMenu.TopLevelMenuPackage.SubItemCallback()„.
Vedere anche
Attività
procedura dettagliata: Aggiunta di un menu alla barra dei menu di Visual Studio (c#)
Altre risorse
Procedure dettagliate per i controlli, i menu e le barre degli strumenti