Udostępnij za pośrednictwem


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

  1. 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ń.

  2. 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ń.

  3. 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

Jak: Tworzenie dodatku

Koncepcje

Wykres modelu obiektu automatyzacji