Exemplarische Vorgehensweise: Ein Untermenü auf ein Menü hinzu
Builds dieser exemplarischen Vorgehensweise auf der Demonstration in Exemplarische Vorgehensweise: Ein Menü in Visual Studio-Menüleiste hinzufügen (C#) durch das Anzeigen, wie ein Untermenü dem TestMenu Menü hinzugefügt wird.
Ein Untermenü ist ein sekundäres Menü, das in ein anderes Menü dargestellt wird. Ein Untermenü kann durch den Pfeil gekennzeichnet sind, der dem Namen folgt. Durch Klicken auf den Namen verursacht das Untermenü und die zugehörigen Befehle angezeigt werden soll.
In dieser exemplarischen Vorgehensweise wird ein Untermenü in einem Menü auf der Visual Studio-Menüleiste und fügt einen neuen Befehl für das Untermenü. Die exemplarische Vorgehensweise implementiert auch den Befehl Neu.
Vorbereitungsmaßnahmen
Zum Abschließen dieser exemplarischen Vorgehensweise müssen Sie Visual Studio 2010 SDKinstallieren.
Hinweis
Weitere Informationen über das Visual Studio-SDK finden Sie unter Erweitern von Visual Studio Overview.Um herauszufinden finden Sie unter wie das Visual Studio-SDK, auf Visual Studio Extensibility Developer Center der MSDN-Website herunterlädt.
Speicherorte für die Visual Studio-Paket-Projektvorlage
Die Visual Studio-Paket Projektvorlage ist in drei Positionen im Dialogfeld Neues Projekt verfügbar:
Die Visual Basic-Erweiterbarkeit. Die Standardsprache des Projekts ist Visual Basic.
Die C#-Erweiterbarkeit. Die Standardsprache ist C# des Projekts.
Die Andere Projekttypen/Erweiterungen. Die Standardsprache des Projekts ist C++.
VSPackage erstellen
So erstellen TopLevelMenu VSPackage
Führen Sie die Schritte in Exemplarische Vorgehensweise: Ein Menü in Visual Studio-Menüleiste hinzufügen (C#) , um das Menü zu erstellen, zu dem die Funktionalität in dieser exemplarischen Vorgehensweise hinzugefügt wird.
Die Schritte in dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass der Name TopLevelMenuVSPackages, der der Name ist, der in Exemplarische Vorgehensweise: Ein Menü in Visual Studio-Menüleiste hinzufügen (C#)verwendet wird.
Ein Untermenü auf ein Menü hinzu
So fügen Sie ein Untermenü einem Menü hinzu
In Projektmappen-Exploreröffnen Sie TopLevelMenu.vsct.
Im <Symbols>-Abschnitt fügen Sie ein <IDSymbol>-Element für das Untermenü, eines für die Gruppe Untermenü und eines für den Befehl, um alle im <GuidSymbol> Knoten mit dem Namen hinzu, der guidTopLevelMenuCmdSet „.“ Dies ist derselbe Knoten, der das <IDSymbol>-Element für das Menü der obersten Ebene enthält.
<IDSymbol name="SubMenu" value="0x1100"/> <IDSymbol name="SubMenuGroup" value="0x1150"/> <IDSymbol name="cmdidTestSubCommand" value="0x0105"/>
Fügen Sie im Untermenü auf das neu erstellte <Menus>-Abschnitt hinzu.
<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>
Das GUID-/ID paar des übergeordneten Elements gibt die Gruppe, die in Menüs Exemplarische Vorgehensweise: Ein Menü in Visual Studio-Menüleiste hinzufügen (C#)generiert wurde, und ist ein untergeordnetes Element des Menüs der obersten Ebene.
Fügen Sie der Gruppe Menü hinzu, die dem in Schritt 2 <Groups>-Abschnitt definiert und machen Sie diese zu einem untergeordneten Element aus dem Untermenü.
<Group guid="guidTopLevelMenuCmdSet" id="SubMenuGroup" priority="0x0000"> <Parent guid="guidTopLevelMenuCmdSet" id="SubMenu"/> </Group>
Fügen Sie ein neues <Button>-Element dem <Buttons>-Abschnitt hinzu, um den Befehl zu definieren, der in Schritt 2 als Element im Untermenü erstellt wird.
<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>
Hinweis
In .vsct-Dateien ist das <Button>-Element ein allgemeines Konstrukt, das verwendet wird, um Schaltflächen Menüelemente und für alle anderen Elemente der Benutzeroberfläche dargestellt werden, die ein Benutzer klicken kann, um einen Befehl auszuführen.
In Projektmappen-Explorermit der rechten Maustaste auf TopLevelMenu.vsct, und klicken Sie dann auf Neu erstellen.
Das zu .vsct-Datei die mit den Änderungen. Beheben Sie alle Fehler, die möglicherweise während der Builderstellung verwendet werden. (Der häufigste Fehler verwendet das falsche Argument für eine GUID-Bezeichnung oder eine Befehls-ID. GUID-Bezeichnungen und Befehls-IDs ist immer Groß- und Kleinschreibung beachtet).
Drücken Sie F5, um eine Instanz der experimentellen Umgebung Visual Studio im Debugmodus zu öffnen.
Klicken Sie auf TestMenu , um ein neues Untermenü anzuzeigen, das Untermenübenannt ist. Klicken Sie auf Untermenü , um das Untermenü zu öffnen und einen neuen Befehl, Unterbefehl testenanzuzeigen. Beachten Sie, dass klicken Sie auf Unterbefehl testen hat keine Auswirkungen.
Hinweis
Sie müssen experimentelle Visual Studio schließen, bevor Sie mit dem nächsten Abschnitt fortfahren.
Hinzufügen eines Befehls
Um Unterstützung für einen Befehl in verwaltetem Code hinzu
Öffnen Sie PkgCmdID.cs oder PkgCmdID.vb im Code-Editor.
Fügen Sie die folgende Befehls-ID nach der vorhandenen Befehls-ID in der PkgCmdIDList-Klassendefinition hinzu.
public const int cmdidTestSubCmd = 0x105;
Öffnen Sie TopLevelMenuPackage.cs oder TopLevelMenuPackage.vb im Code-Editor.
Suchen Sie im verborgenen Bereich, der Package Members bezeichnet wird, und erweitern Sie ihn, indem Sie auf das Pluszeichen am linken Rand klicken.
Suchen Sie die Initialize-Methode, und fügen Sie die folgenden Zeilen direkt nach dem Aufruf der AddCommand-Methode hinzu. Das Symbol SubItemCallback wird nach Schritt 6 nicht definiert.
CommandID subCommandID = new CommandID( GuidList.guidTopLevelMenuCmdSet, (int)PkgCmdIDList.cmdidTestSubCmd); MenuCommand subItem = new MenuCommand( new EventHandler(SubItemCallback), subCommandID); mcs.AddCommand(subItem);
Am Ende der Klasse direkt nach der MenuItemCallback-Methode, fügen Sie die folgende Methode hinzu. Dies ist die Methode, die aufgerufen wird, wenn auf den neuen Befehl im Untermenü geklickt wird.
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); }
Zum Erstellen der Projektmappe klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Drücken Sie F5, um eine Instanz experimentellen Visual Studiozu öffnen.
Zeigen Sie im Menü TestMenu auf Untermenü , und klicken Sie dann auf Unterbefehl testen. Ein Meldungsfeld angezeigt werden soll und den Text anzeigen, „innerhalb Company.TopLevelMenu.TopLevelMenuPackage.SubItemCallback()“.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Ein Menü in Visual Studio-Menüleiste hinzufügen (C#)
Weitere Ressourcen
Exemplarische Vorgehensweisen für Befehle, Menüs und Symbolleisten