Método ModelExplorerTreeContainer.AddCommandHandlers
Fornece métodos para localizar, chamar e remover comandos de menu no menu de atalho.
Namespace: Microsoft.VisualStudio.Modeling.Shell
Assembly: Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll)
Sintaxe
'Declaração
Public Overridable Sub AddCommandHandlers ( _
menuCommandService As IMenuCommandService _
)
public virtual void AddCommandHandlers(
IMenuCommandService menuCommandService
)
Parâmetros
- menuCommandService
Tipo: System.ComponentModel.Design.IMenuCommandService
O IMenuCommandService interface para usar com os comandos.
Comentários
Este método chama o ISelectionService interface.
Implementação da classe base adiciona manipuladores de comandos somente se um manipulador já não está registrado.Isso permite que as classes derivadas substituir o tratamento de cada comando.Portanto, as classes derivadas devem adicionar comandos antes que eles chamam a classe base.
Exemplos
Este exemplo adiciona um comando personalizado ao menu de atalho.Quando um usuário cria uma solução no designer gerado e clica com o botão direito do diagrama, um comando adicional, Comando de exemplo, aparece no menu de atalho.
No arquivo Commands.vsct, a seguinte linha aparece após as instruções include.
#define cmdidMyMenuSample 0x0008
No arquivo Commands.vsct, a seguinte linha aparece após GENERATED_BUTTONS.
guidCmdSet:cmdidMyMenuSampe, guidCommonModelingMenu:grpidExplorerMenuGroup, 0x8020, OI_NOID, BUTTON, DIS_DEF, "&Sample Command";
Dentro da pasta VsctComponents, o seguinte arquivo. cs está disponível.O namespace e alguns dos métodos que o nome do projeto, MenuSample, eles contêm.
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);
}
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.