Jak: narazić dodatek programu w Menu narzędzia (Visual C#)
Podczas tworzenia Dodaj w za pomocą Kreatora Add-In i wybierz opcję, aby wyświetlić ją jako polecenia, polecenie znajduje się na Narzędzia menu domyślnie.Jeśli pominiesz tej opcji podczas tworzenia dodatku, jednakże można po prostu uruchomić Kreatora Add-In ponownie, zaznaczenie tego pola wyboru, a następnie skopiować istniejący kod do nowego dodatku.
Jeśli w ten sposób nie jest możliwe, chociaż, następująca procedura daje taki sam rezultat.
[!UWAGA]
Okien dialogowych i poleceń menu, którą widzisz mogą różnić się od tych opisanych w pomocy, w zależności od tego, aktywne ustawienia lub edition.Procedury te zostały opracowane z ogólnych ustawień rozwoju aktywnych.Aby zmienić ustawienia, wybierz polecenie przywóz i wywózUstawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.
Aby dodać polecenie menu do istniejących dodatek
Dodaj te przy użyciu instrukcji do pliku zawierającego Connect klasy.
using Microsoft.VisualStudio.CommandBars; using System.Resources; using System.Reflection; using System.Globalization; using System.Windows.Forms;
Zmiana Connect klasy deklaracji do wprowadzenia w życie IDTCommandTarget.
Zastąpienie lub zmiana OnConnection() Kodeksu postępowania do następującego:
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) { } } }
Dodać dwie następujące procedury wymagane, QueryStatus i 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; } } }
Przy każdym zastosowaniu IDTCommandTarget, należy dodać te dwie procedury.Jest szybki sposób to zrobić, zaznacz IDTCommandTarget w Nazwa klasy pola rozwijanego w lewym górnym rogu edytora.Z kolei wybierz każdej procedury z Nazwa metody pola rozwijanego w górnym prawym rogu.Spowoduje to utworzenie niezbędnych procedur pusty z prawidłowych parametrów, które można następnie dodać kod.
Exec Procedura jest wywoływane, gdy użytkownik kliknie polecenie menu, więc wstawić tam kod, który ma być wykonana w tym czasie.
Zobacz też
Zadania
Jak: narazić dodatek programu w Menu narzędzia (Visual Basic)
Jak: dodatki formantu przy użyciu dodać Menedżera