Partager via


CommandSet.GetMenuCommands, méthode

Affiche les commandes dans le menu contextuel.

Espace de noms :  Microsoft.VisualStudio.Modeling.Shell
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0 (dans Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll)

Syntaxe

'Déclaration
Protected Overrides Function GetMenuCommands As IList(Of MenuCommand)
protected override IList<MenuCommand> GetMenuCommands()

Valeur de retour

Type : System.Collections.Generic.IList<MenuCommand>
La liste de commandes de menu.

Notes

Vous pouvez substituer cette méthode et ajouter vos propres commandes.Pour ajouter vos propres commandes, définissez- dans un fichier .targets personnalisé .vsct et appelez- dans un fichier .targets personnalisé .cs.

[!REMARQUE]

N'ajoutez pas vos modifications au fichier de CommandSet.cs.Ce fichier est régénéré chaque fois que vous générez le générateur généré.

Exemples

Cet exemple ajoute une commande personnalisée au menu contextuel.Lorsqu'un utilisateur génère une solution dans le générateur généré et clique avec le bouton droit le diagramme, une commande supplémentaire, Valider, s'affiche dans le menu contextuel.

Dans le fichier de Commands.vsct, la ligne suivante apparaît après les instructions d'include.

#define AssociationSortValidate 0x801

Dans le fichier de Commands.vsct, la ligne suivante apparaît après GENERATED_BUTTONS.

guidCmdSet:AssociationSortValidate, guidCmdSet:grpidContextMain, 0x0100, OI_NOID, BUTTON, DIS_DEF, "&Validate";

Dans le dossier de VsctComponents, le fichier suivant .cs est disponible.L'espace de noms et certaines des méthodes ont le nom du projet, MenuSample, dans celles-ci.

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.Design;
using Microsoft.VisualStudio.Modeling;
using Microsoft.VisualStudio.Modeling.Shell;

namespace MS.MenuSample
{
    internal partial class MenuSampleCommandSet
    {

        // Define the command. This must be unique and match the value in Commands.vsct.
        private const int AssociationSortValidate = 0x801;

        // Register event handlers for menu commands when the Domain-Specific Language Designer starts.
        // Get the commands defined in the generated code.
        protected override IList<System.ComponentModel.Design.MenuCommand> GetMenuCommands()
        {
            global::System.Collections.Generic.IList<global::System.ComponentModel.Design.MenuCommand> commands = base.GetMenuCommands();
            commands.Add(new DynamicStatusMenuCommand(
                new EventHandler(OnStatusChangeAssociationSort),
                new EventHandler(OnMenuChangeAssociationSort),
                CustomCommandId(AssociationSortValidate)));
            return commands;
        }

        // Set whether a command should appear in the shortcut menu by default.
        internal void OnStatusChangeAssociationSort(object sender, EventArgs e)
        {
            MenuCommand command = sender as MenuCommand;
            command.Visible = command.Enabled = true;
        }

        // Perform an Association Sort command on the current selection.
        internal void OnMenuChangeAssociationSort(object sender, EventArgs e)
        {
            MenuCommand command = sender as MenuCommand;
        }

        // Create local command IDs that are unique.
        private CommandID CustomCommandId(int command)
        {
            return new CommandID(new Guid(Constants.MenuSampleCommandSetId), command);
        }
    }
}

Sécurité .NET Framework

Voir aussi

Référence

CommandSet Classe

Microsoft.VisualStudio.Modeling.Shell, espace de noms