Metodo ModelExplorerTreeContainer.AddCommandHandlers
Fornisce metodi per trovare, richiamare e rimuovere comandi di menu dal menu di scelta rapida.
Spazio dei nomi: Microsoft.VisualStudio.Modeling.Shell
Assembly: Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll)
Sintassi
'Dichiarazione
Public Overridable Sub AddCommandHandlers ( _
menuCommandService As IMenuCommandService _
)
public virtual void AddCommandHandlers(
IMenuCommandService menuCommandService
)
Parametri
- menuCommandService
Tipo: System.ComponentModel.Design.IMenuCommandService
Interfaccia IMenuCommandService da utilizzare con i comandi.
Note
Questo metodo chiama l'interfaccia di ISelectionService.
L'implementazione della classe base aggiungere gestori comandi solo se un gestore non è già registrato. Ciò consente alle classi derivate per eseguire l'override della gestione di ogni comando. Di conseguenza, le classi derivate devono aggiungere controlli prima di chiamare la classe base.
Esempi
In questo esempio viene aggiunto un comando personalizzato al menu di scelta rapida. Quando un utente compila una soluzione nella finestra di progettazione generata e fare clic con il pulsante destro del mouse sul diagramma, un comando aggiuntivo, Comando di esempio, viene visualizzato nel menu di scelta rapida.
Nel file di Commands.vsct, la riga seguente viene visualizzato dopo le istruzioni di inclusione.
#define cmdidMyMenuSample 0x0008
Nel file di Commands.vsct, la riga seguente viene visualizzato dopo GENERATED_BUTTONS.
guidCmdSet:cmdidMyMenuSampe, guidCommonModelingMenu:grpidExplorerMenuGroup, 0x8020, OI_NOID, BUTTON, DIS_DEF, "&Sample Command";
Nella cartella di VsctComponents, il seguente file .cs è disponibile. Lo spazio dei nomi e alcuni di essi contengono il nome del progetto, MenuSample, in esse.
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);
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.