Como: expor um suplemento em um Menu de atalho
Enquanto o Visual Studio modelo de automação torna fácil colocar o suplemento comandos nos menus de nível superior, como de Ferramentas menu, você também pode adicionar comandos aos menus de atalho e submenus.
Para fazer isso, no entanto, você deve usar o modelo de objeto da barra de comandos do Microsoft Visual Studio definir explicitamente o menu de atalho de destino e o submenu.Em seguida, você deve chamar o Visual StudioAddControl método.
Menus de atalho são semelhantes de outros menus de Visual Studio.Para acessá-los, você aponta para uma seta para baixo em um menu suspenso ou clique com o botão direito um item em um ambiente de desenvolvimento integrado (IDE).
Para adicionar um comando para um menu de atalho (ou qualquer menu ou barra de ferramentas), você deve primeiro saber seu nome de comando.Localizou pesquisando por meio do teclado nó na Opções caixa de diálogo na Ferramentas menu.
O procedimento a seguir demonstra como adicionar um comando add-in para o Lista de tarefas menu de atalho.
Observação |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o General Development Settings ativo.Para alterar as configurações, escolha importação e Exportarconfigurações sobre o Ferramentas menu.Para obter mais informações, consulte Configurações de Visual Studio. |
Para adicionar um comando add-in a um menu de atalho
No menu File, aponte para New, e em seguida, clique em Project.
No Novo projeto diálogo caixa, expanda Other Project Types, clique em extensibilidadee, em seguida, clique em Visual Studio Add-in na modelos painel.
Nomeie o suplemento ContextCmd e clique em OK para iniciar o Visual Studio Add-in Wizard.
Selecione a opção para criar uma interface de usuário (UI) para o suplemento, verificando a você gostaria de criar um comando de interface de barra para seu suplemento? caixa.
Isso adiciona alguns códigos de interface do usuário para o OnConnection método.Ele também adiciona o Exec método que manipula o evento quando alguém clicar o comando add-in, e o QueryStatus método, que fornece informações sobre o status do suplemento.
Substitua o código com o seguinte:
Imports System Imports Microsoft.VisualStudio.CommandBars Imports Extensibility Imports EnvDTE Imports EnvDTE80 Public Class Connect Implements IDTExtensibility2 Implements IDTCommandTarget Dim _applicationObject As DTE2 Dim _addInInstance As AddIn Dim cmdBarCtl As CommandBarControl Public Sub New() End Sub Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As ext_ConnectMode, ByVal addInInst As Object, _ ByRef custom As Array) Implements _ IDTExtensibility2.OnConnection Dim cmd As Command Dim cmdBar As CommandBar _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) Try If CType(ext_ConnectMode.ext_cm_AfterStartup Or _ ext_ConnectMode.ext_cm_Startup, Boolean) Then ' If the command does not exist, add it. If cmd Is Nothing Then cmd = _applicationObject.Commands. _ AddNamedCommand(_addInInstance, _ "newCmd", "newCmd", "Runs the add-in.", _ True, 59, Nothing, _ vsCommandStatus.vsCommandStatusSupported _ Or vsCommandStatus.vsCommandStatusEnabled) End If ' Reference the Task List shortcut menu. cmdBar = CType(_applicationObject. _ CommandBars.Item("Task List"), _ Microsoft.VisualStudio.CommandBars.CommandBar) ' Add a command to the Task List's shortcut menu. cmdBarCtl = CType(cmd.AddControl(cmdBar, _ cmdBar.Controls.Count + 1), _ Microsoft.VisualStudio.CommandBars. _ CommandBarControl) cmdBarCtl.Caption = "A New Command" End If Catch e As System.Exception System.Windows.Forms.MessageBox.Show(e.ToString) End Try End Sub Public Sub OnDisconnection(ByVal disconnectMode As _ ext_DisconnectMode, ByRef custom As Array) Implements _ IDTExtensibility2.OnDisconnection Try ' Delete the command bar control from the ' shortcut menu. If Not (cmdBarCtl Is Nothing) Then cmdBarCtl.Delete() End If Catch e As System.Exception System.Windows.Forms.MessageBox.Show(e.ToString) End Try End Sub Public Sub OnAddInsUpdate(ByRef custom As Array) Implements _ IDTExtensibility2.OnAddInsUpdate End Sub Public Sub OnStartupComplete(ByRef custom As Array) Implements _ IDTExtensibility2.OnStartupComplete End Sub Public Sub OnBeginShutdown(ByRef custom As Array) Implements _ IDTExtensibility2.OnBeginShutdown End Sub Public Sub QueryStatus(ByVal commandName As String, ByVal _ neededText As vsCommandStatusTextWanted, ByRef status As _ vsCommandStatus, ByRef commandText As Object) Implements _ IDTCommandTarget.QueryStatus If commandName = "ContextCmd.Connect.newCmd" Then status = CType(vsCommandStatus.vsCommandStatusEnabled _ + vsCommandStatus.vsCommandStatusSupported, _ vsCommandStatus) Else status = vsCommandStatus.vsCommandStatusUnsupported End If End Sub Public Sub Exec(ByVal commandName As String, ByVal _ executeOption As vsCommandExecOption, ByRef varIn As _ Object, ByRef varOut As Object, ByRef handled As Boolean) _ Implements IDTCommandTarget.Exec handled = False If executeOption = vsCommandExecOption. _ vsCommandExecOptionDoDefault Then If commandName = "ContextCmd.Connect.newCmd" Then handled = True System.Windows.Forms.MessageBox.Show("Add-in _ running...") End If End If End Sub End Class
Adicione o código que você deseja executar quando o comando é clicado na Exec procedimento.
Criar o suplemento e, em seguida, executá-lo.
Exibição o Lista de tarefas , clicando em Lista de tarefas no Exibir menu.
Sobre o Ferramentas menu, clique em Gerenciador de suplementos.
Ative o suplemento de ContextCmd, marcando a caixa próxima a ele no Gerenciador de suplementos.
Com o botão direito do lista de tarefas.
O ContextCmd suplemento comando aparece no menu de atalho.
Consulte também
Tarefas
Como: Add-Ins de controle, usando o Gerenciador de suplemento
Passo a passo: Criando um assistente
Referência
Switches e comandos de Visual Studio
Conceitos
Exibindo os suplementos nas barras de ferramentas e Menus
Gráfico de modelo de objeto de automação