Como: expor um suplemento no Menu Ferramentas (Visual C#)
Quando você cria um add-in usando o Assistente Add-In e selecione a opção para exibi-lo como um comando, o comando está no Ferramentas menu por padrão.Se você ignorar essa opção quando você cria o add-in, no entanto, você pode simplesmente executar o Assistente Add-In novamente, marque essa opção e então copie seu código existente para o novo add-in.
Se isso não for possível, porém, o procedimento a seguir produz o mesmo resultado.
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 de menu para um suplemento existente
Adicioná-los usando as instruções para o arquivo que contém o Connect classe.
using Microsoft.VisualStudio.CommandBars; using System.Resources; using System.Reflection; using System.Globalization; using System.Windows.Forms;
Alterar o Connect classe declaração para implementar IDTCommandTarget.
Substituir ou alterar o OnConnection() código de procedimento para o seguinte:
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; if(connectMode == ext_ConnectMode.ext_cm_UISetup) { object []contextGUIDS = new object[] { }; Commands2 commands = (Commands2)_applicationObject.Commands; string toolsMenuName; try { ResourceManager resourceManager = new ResourceManager("MyAddin1.CommandBar", Assembly.GetExecutingAssembly()); CultureInfo cultureInfo = new System.Globalization.CultureInfo (_applicationObject.LocaleID); string resourceName = String.Concat(cultureInfo. TwoLetterISOLanguageName, "Tools"); toolsMenuName = resourceManager.GetString(resourceName); } catch { toolsMenuName = "Tools"; } CommandBar menuBarCommandBar = ((CommandBars)_applicationObject.CommandBars) ["MenuBar"]; CommandBarControl toolsControl = menuBarCommandBar.Controls[toolsMenuName]; CommandBarPopup toolsPopup = (CommandBarPopup)toolsControl; try { Command command = commands.AddNamedCommand2 (_addInInstance, "MyAddin1", "MyAddin1", "Executes the command for MyAddin1", true, 59, ref contextGUIDS, (int)vsCommandStatus. vsCommandStatusSupported+(int)vsCommandStatus. vsCommandStatusEnabled, (int)vsCommandStyle. vsCommandStylePictAndText, vsCommandControlType. vsCommandControlTypeButton); if((command != null) && (toolsPopup != null)) { command.AddControl(toolsPopup.CommandBar, 1); } } catch(System.ArgumentException) { } } }
Adicione os seguintes procedimentos necessários dois, QueryStatus e Exec:
public void QueryStatus(string commandName, vsCommandStatusTextWanted neededText, ref vsCommandStatus status, ref object commandText) { if(neededText == vsCommandStatusTextWanted.vsCommandStatusTextWantedNone) { if(commandName == "MyAddin1.Connect.MyAddin1") { status = (vsCommandStatus)vsCommandStatus. vsCommandStatusSupported|vsCommandStatus. vsCommandStatusEnabled; return; } } } public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled) { handled = false; if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault) { if(commandName == "MyAddin1.Connect.MyAddin1") { handled = true; System.Windows.Forms.MessageBox. Show("add-in running."); return; } } }
Cada vez que você implementa IDTCommandTarget, você deve adicionar esses dois procedimentos.Uma maneira rápida de fazer isso é selecionar IDTCommandTarget no O nome da classe caixa suspensa, no canto superior esquerdo do editor.Selecione cada procedimento separadamente a partir do Nome do método caixa drop-down no canto superior direito.Isso cria os procedimentos vazios necessários com os parâmetros corretos para o qual você pode adicionar código.
O Exec procedimento é chamado quando um usuário clica em seu comando de menu, assim, insira o código existente ali que você deseja executar neste momento.
Consulte também
Tarefas
Como: expor um suplemento no Menu Ferramentas (Visual Basic)
Como: Add-Ins de controle, usando o Gerenciador de suplemento