Como: Expor um suplemento no Menu Ferramentas (Visual Basic)
Quando você criar um add-in usando o Assistente de suplemento e selecionar a opção para exibi-lo sistema autônomo um comando, o comando está sobre o Ferramentas menu por padrão.Se você ignorar essa opção quando você criar o suplemento, entretanto, você pode simplesmente executar o Assistente de suplemento novamente, marque essa opção e em seguida, copie o código existente para o novo suplemento.
Se isso não for possível, porém, o procedimento a seguir realiza a mesma coisa.
Observação: |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Import and ExportSettings on the Tools menu.Para obter mais informações, consulte Configurações do Visual Studio. |
Para adicionar um comando de menu um suplemento existente
No Connect classe do add - in, add Implements IDTCommandTarget.
Isso permite acessar o IDTCommandTarget comandos de interface que é necessário para a criação de comandos.
No OnConnection procedimento, adicione o seguinte:
Imports System Imports Microsoft.VisualStudio.CommandBars Imports Extensibility Imports EnvDTE Imports EnvDTE80 _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) If connectMode = ext_ConnectMode.ext_cm_UISetup Then Dim commands As Commands2 = CType(_applicationObject.Commands, _ Commands2) Dim toolsMenuName As String Try Dim resourceManager As System.Resources.ResourceManager = _ New System.Resources.ResourceManager _ ("MyAddin1.CommandBar", System.Reflection.Assembly. _ GetExecutingAssembly()) Dim cultureInfo As System.Globalization.CultureInfo = New _ System.Globalization.CultureInfo(_applicationObject. _ LocaleID) toolsMenuName = resourceManager.GetString(String.Concat _ (cultureInfo.TwoLetterISOLanguageName, "Tools")) Catch e As Exception toolsMenuName = "Tools" End Try Dim commandBars As CommandBars = _ CType(_applicationObject.CommandBars, CommandBars) Dim menuBarCommandBar As CommandBar = _ commandBars.Item("MenuBar") Dim toolsControl As CommandBarControl = _ menuBarCommandBar.Controls.Item(toolsMenuName) Dim toolsPopup As CommandBarPopup = CType(toolsControl, _ CommandBarPopup) Try Dim command As Command = _ commands.AddNamedCommand2(_addInInstance, "MyAddin1", _ "MyAddin1", "Executes the command for MyAddin1", True, _ 59, Nothing, CType(vsCommandStatus. _ vsCommandStatusSupported, Integer) + _ CType(vsCommandStatus.vsCommandStatusEnabled, _ Integer), vsCommandStyle.vsCommandStylePictAndText, _ vsCommandControlType.vsCommandControlTypeButton) command.AddControl(toolsPopup.CommandBar, 1) Catch argumentException As System.ArgumentException End Try End If
Esse código é executado quando o suplemento é carregado ("conectado") emVisual Studio. Ele determina se o suplemento foi carregado com um ext_ConnectMode valor de ext_cm_UISetup. Isso significa que o suplemento foi iniciado pela primeira time desde que está sendo instalado.Se isso for verdadeiro, em seguida, um comando é criado para ela no Ferramentas menu usando o AddNamedCommand método. Para obter mais informações, consulte Como: Adicionar e manipular comandos.
Adicione os seguintes procedimentos de dois para o Connect classe.
The QueryStatus método é chamado quando a disponibilidade do comando é atualizada. The Exec método é chamado quando o comando é chamado.
Public Sub QueryStatus(ByVal commandName As String, _ ByVal neededText As vsCommandStatusTextWanted, ByRef status As _ vsCommandStatus, ByRef commandText As Object) Implements _ IDTCommandTarget.QueryStatus If neededText = vsCommandStatusTextWanted. _ vsCommandStatusTextWantedNone Then If commandName = "MyAddin1.Connect.MyAddin1" Then status = CType(vsCommandStatus.vsCommandStatusEnabled _ + vsCommandStatus.vsCommandStatusSupported, _ vsCommandStatus) Else status = vsCommandStatus.vsCommandStatusUnsupported End If 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 = "MyAddin1.Connect.MyAddin1" Then handled = True Exit Sub End If End If End Sub
Cada time implementar IDTCommandTarget, você deve adicionar desses dois procedimentos. Uma maneira rápida de fazer isso é selecionar IDTCommandTarget no nome de classe lista suspensa no canto superior esquerdo do editor.selecionar cada procedimento por sua vez do Nome do método suspensa caixa no canto superior direito.Isso cria os procedimentos vazios necessários com os parâmetros corretos para o qual você pode adicionar código.
The Exec procedimento é chamado quando um usuário clica em seu comando de menu, então, código inserir lá que você deseja executar neste momento.
Consulte também
Tarefas
Como: Expor um suplemento no Menu Ferramentas (translation from VPE for Csharp Visual)
Como: Add-ins de controle com o Gerenciador de suplemento