How to: Expor uma Adicionar-no Menu Ferramentas (Visual C#)
Quando você cria um add-in usando o O Assistente de suplemento 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 O Assistente de suplemento novamente, marque essa opção e então copie seu código existente para o novo suplemento.
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 Exportar configurações sobre o Ferramentas menu. Para obter mais informações, consulte Trabalhando com configurações. |
Para adicionar um comando de menu para um add-in existente
Adicionar essas instruções using ao 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 a declaração de classe para implementar IDTCommandTarget.
Substituir ou alterar o OnConnection() o código do procedimento a seguir:
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ê implemente IDTCommandTarget, você deve adicionar esses dois procedimentos. Uma maneira rápida de fazer isso é selecionar IDTCommandTarget na Nome da classe na caixa suspensa no canto superior esquerdo do editor. Selecione cada procedimento por sua vez o Nome do método a caixa suspensa 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, então, insira o código que você deseja executar no tempo.
Consulte também
Tarefas
How to: Expor uma Adicionar-no Menu Ferramentas (Visual Basic)
How to: Adicionar-Ins usando o Adicionar-no Gerenciador de controle