Condividi tramite


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

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

Vedere anche

Riferimenti

ModelExplorerTreeContainer Classe

Spazio dei nomi Microsoft.VisualStudio.Modeling.Shell