ModelExplorerTreeContainer.AddCommandHandlers, méthode
Fournit les méthodes permettant de rechercher, appeler et supprimer des commandes de menu dans le 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
Public Overridable Sub AddCommandHandlers ( _
menuCommandService As IMenuCommandService _
)
public virtual void AddCommandHandlers(
IMenuCommandService menuCommandService
)
Paramètres
- menuCommandService
Type : System.ComponentModel.Design.IMenuCommandService
Interface IMenuCommandService à utiliser avec les commandes.
Notes
Cette méthode appelle l'interface d'ISelectionService.
L'implémentation de la classe de base ajoute les gestionnaires de commandes uniquement si un gestionnaire n'est pas déjà inscrit. Cela permet aux classes dérivées pour remplacer la gestion de chaque commande. Par conséquent, les classes dérivées doivent ajouter des commandes avant leur appellent la classe de base.
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, Exemple de commande, apparaît dans le menu contextuel.
Dans le fichier de Commands.vsct, la ligne suivante apparaît après les instructions à inclure.
#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 prochain fichier .cs est disponible. L'espace de noms et certaines des méthodes ont le nom du projet, MenuSample, qu'elles contiennent.
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.