Partager via


CommandSet.GetMenuCommands, méthode

Affiche les commandes du menu contextuel.

Espace de noms :  Microsoft.VisualStudio.Modeling.Shell
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.Shell.12.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>
Liste des commandes de menu.

Notes

Vous pouvez remplacer cette méthode et ajouter vos propres commandes. Pour ajouter vos propres commandes, les définir dans un fichier de l'objet personnalisé .vsct et les appeler dans un fichier de l'objet personnalisé .cs.

Notes

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 concepteur généré.

Exemples

Cet exemple ajoute une commande personnalisée dans le menu contextuel. Lorsqu'un utilisateur crée une solution dans le concepteur généré et cliquez avec le bouton droit sur le schéma, une commande supplémentaire, Valider, apparaît 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 prochain fichier .cs est disponible. L'espace de noms et certaines des méthodes ont le nom du projet, MenuSample, qu'elles contiennent.

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