ModelExplorerTreeContainer.AddCommandHandlers, méthode
Fournit des méthodes pour rechercher, appeler, et supprimer des commandes de menu du 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
Public Overridable Sub AddCommandHandlers ( _
menuCommandService As IMenuCommandService _
)
public virtual void AddCommandHandlers(
IMenuCommandService menuCommandService
)
Paramètres
- menuCommandService
Type : System.ComponentModel.Design.IMenuCommandService
L'interface d'IMenuCommandService à l'utiliser avec les commandes.
Notes
Cette méthode appelle l'interface d'ISelectionService.
L'implémentation de la classe de base ajoute des gestionnaires de commandes uniquement si un gestionnaire n'est pas déjà enregistré.Cela permet aux classes dérivées pour substituer la gestion de chaque commande.Par conséquent, les classes dérivées doivent ajouter des commandes avant qu'ils appellent la classe de base.
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, Exemple de commande, s'affiche dans le menu contextuel.
Dans le fichier de Commands.vsct, la ligne suivante apparaît après les instructions de comprendre.
#define cmdidMyMenuSample 0x0008
Dans le fichier de Commands.vsct, la ligne suivante apparaît après GENERATED_BUTTONS.
guidCmdSet:cmdidMyMenuSampe, guidCommonModelingMenu:grpidExplorerMenuGroup, 0x8020, OI_NOID, BUTTON, DIS_DEF, "&Sample Command";
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 DslModeling = global::Microsoft.VisualStudio.Modeling;
using DslShell = global::Microsoft.VisualStudio.Modeling.Shell;
using DslDiagrams = global::Microsoft.VisualStudio.Modeling.Diagrams;
using System;
using System.ComponentModel.Design;
using System.Windows.Forms;
namespace MS.MenuSample
{
internal partial class MenuSampleExplorer
{
public override void AddCommandHandlers(System.ComponentModel.Design.IMenuCommandService menuCommandService)
{
menuCommandService.AddCommand(new DslShell::DynamicStatusMenuCommand(
new EventHandler(OnStatusMyMenuSample),
new EventHandler(OnMenuMyMenuSample),
Constants.MyMenuSampleCommand));
base.AddCommandHandlers(menuCommandService);
}
private void OnStatusMyMenuSample(object sender, EventArgs e)
{
System.ComponentModel.Design.MenuCommand cmd = sender as System.ComponentModel.Design.MenuCommand;
cmd.Enabled = cmd.Visible = true;
}
private void OnMenuMyMenuSample(object sender, EventArgs e)
{
MessageBox.Show("Place for you to act when user chooses this menu item");
}
}
internal static partial class Constants
{
private const int cmdidMyMenuSample = 0x0008;
public static readonly CommandID MyMenuSampleCommand = new CommandID(new Guid(MenuSampleCommandSetId), Constants.cmdidMyMenuSample);
}
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.