Metodo ModelExplorerTreeContainer.AddCommandHandlers
Fornisce metodi per trovare, richiamare e rimuovere i comandi di menu dal menu di scelta rapida.
Spazio dei nomi: Microsoft.VisualStudio.Modeling.Shell
Assembly: Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll)
Sintassi
'Dichiarazione
Public Overridable Sub AddCommandHandlers ( _
menuCommandService As IMenuCommandService _
)
public virtual void AddCommandHandlers(
IMenuCommandService menuCommandService
)
Parametri
- menuCommandService
Tipo: System.ComponentModel.Design.IMenuCommandService
IMenuCommandService interfaccia da utilizzare con i controlli.
Note
Questo metodo viene richiamato ISelectionService interfaccia.
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 necessario aggiungere i controlli prima di chiamare la classe base.
Esempi
In questo esempio viene aggiunto un comando personalizzato al menu di scelta rapida.Quando un utente si 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";
All'interno della cartella di VsctComponents, il seguente file vb è disponibile. Lo spazio dei nomi e alcuni di essi contengono il nome del progetto, MenuSample, in essi.
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.