Jak: narazić dodatek programu w Menu narzędzia (Visual Basic)
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, jednak następujące procedury programowa to samo.
[!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
W Connect klasy dodatków, należy dodać Implements IDTCommandTarget.
Daje to użytkownikowi dostęp do IDTCommandTarget interfejsu poleceń, które są niezbędne do tworzenia poleceń.
W OnConnection procedury, dodaj następującą wartość:
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_Startup 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
Ten kod jest wykonywany, gdy dodatek jest załadowany ("Połączono") Visual Studio.Określa, jeżeli dodatek został załadowany z ext_ConnectMode wartość ext_cm_UISetup.Oznacza to, że dodatek został uruchomiony po raz pierwszy od instalowane.Jeśli to PRAWDA, a następnie polecenia jest tworzony dla niego na Narzędzia menu za pomocą AddNamedCommand metody.Aby uzyskać więcej informacji, zobacz Jak: Dodawanie i obsługiwać poleceń.
Dodać dwie następujące procedury, aby Connect klasy.
QueryStatus Metoda jest wywoływana po zaktualizowaniu dostępności polecenia.Exec Metoda jest wywoływana, gdy polecenie jest wywoływany.
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
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 C#)
Jak: dodatki formantu przy użyciu dodać Menedżera