Porady: udostępnianie dodatku w menu skrótów

Dodatki Visual Studio zostały zaniechane w programie Visual Studio 2013.Dodatki należy uaktualniać do pakietu rozszerzenia VSPackage.Aby uzyskać więcej informacji na temat uaktualniania, zobacz Często zadawane pytania: konwertowanie dodatków na rozszerzenia pakietu VSPackage.

Podczas gdy Visual Studio model automatyzacji sprawia, że łatwo umieścić polecenia dodatku w menu najwyższego poziomu, tak jak w menu Narzędzia , można również dodać polecenia do menu skrótów i pod-menu.

Aby to zrobić, mimo że należy użyć modelu obiektowego programu Microsoft Visual Studio pasek poleceń jawnie definiuje miejsce docelowe skrótu menu i pod-menu.Następnie należy wywołać Visual StudioAddControl metody.

Menu skrótów są podobne do innych menu w Visual Studio.aby uzyskać do nich dostęp, wskaż strzałkę w dół w menu rozwijanym lub kliknij prawym przyciskiem myszy element w zintegrowanym środowisku programistycznym (IDE).

Aby dodać polecenie do menu skrótów (lub dowolnego menu lub paska narzędzi), najpierw trzeba znać jego nazwę polecenia.Można go znaleźć przeszukując poprzez węzeł Klawiatury w oknie dialogowym Opcje w menu Narzędzia.

W poniższej procedurze przedstawiono sposób dodawania polecenia Dodaj do menu skrótów Listy zadań.

[!UWAGA]

Polecenia menu i okien dialogowych mogą różnić się od tych opisanych w Pomocy, w zależności od ustawień aktywnych lub wydania.Procedury te zostały opracowane z ogólnych ustawień projektowych active.Aby zmienić swoje ustawienia, wybierz Importuj i eksportujustawienia w menu Narzędzia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Aby dodać polecenie dodatku istniejącego menu skrótów

  1. W menu Plik, wskaż Nowy, a następnie kliknij przycisk Projekt.

  2. W oknie dialogowym Nowy projekt rozwiń Inne typy projektów, kliknij Rozszerzalność, a następnie kliknij Dodatek Visual Studio w okienku Szablony.

    Nazwij dodatek ContextCmd i kliknij przycisk OK, aby uruchomić Kreatora dodatków pakietu Visual Studio.

  3. Wybierz opcję, aby utworzyć interfejs użytkownika (UI) dla dodatku poprzez zaznaczenie pola Czy chcesz utworzyć polecenie paska dla dodatku?.

    Spowoduje to dodanie niektórych kodów interfejsu użytkownika do OnConnection metody.Dodaje także metodę Exec, która obsługuje zdarzenie po kliknięciu polecenia dodatku i metodę QueryStatus, która dostarcza informacji na temat stanu dodatku.

  4. Zamień kod na następujący:

    Imports System
    Imports Microsoft.VisualStudio.CommandBars
    Imports Extensibility
    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Connect
    
        Implements IDTExtensibility2
        Implements IDTCommandTarget
    
        Dim _applicationObject As DTE2
        Dim _addInInstance As AddIn
    
        Dim cmdBarCtl As CommandBarControl
    
        Public Sub New()
        End Sub
    
        Public Sub OnConnection(ByVal application As Object, ByVal _
          connectMode As ext_ConnectMode, ByVal addInInst As Object, _
          ByRef custom As Array) Implements _
          IDTExtensibility2.OnConnection
            Dim cmd As Command
            Dim cmdBar As CommandBar
    
            _applicationObject = CType(application, DTE2)
            _addInInstance = CType(addInInst, AddIn)
    
            Try
                If CType(ext_ConnectMode.ext_cm_AfterStartup Or _
                  ext_ConnectMode.ext_cm_Startup, Boolean) Then
                    ' If the command does not exist, add it.
                    If cmd Is Nothing Then
                        cmd = _applicationObject.Commands. _
                          AddNamedCommand(_addInInstance, _
                          "newCmd", "newCmd", "Runs the add-in.", _
                          True, 59, Nothing, _
                          vsCommandStatus.vsCommandStatusSupported _
                          Or vsCommandStatus.vsCommandStatusEnabled)
                    End If
    
                    ' Reference the Task List shortcut menu.
                    cmdBar = CType(_applicationObject. _
                      CommandBars.Item("Task List"), _
                      Microsoft.VisualStudio.CommandBars.CommandBar)
    
                    ' Add a command to the Task List's shortcut menu.
                    cmdBarCtl = CType(cmd.AddControl(cmdBar, _
                      cmdBar.Controls.Count + 1), _
                      Microsoft.VisualStudio.CommandBars. _
                      CommandBarControl)
                    cmdBarCtl.Caption = "A New Command"
                End If
            Catch e As System.Exception
                System.Windows.Forms.MessageBox.Show(e.ToString)
            End Try
        End Sub
    
        Public Sub OnDisconnection(ByVal disconnectMode As _
          ext_DisconnectMode, ByRef custom As Array) Implements _
          IDTExtensibility2.OnDisconnection
            Try
                ' Delete the command bar control from the 
                   ' shortcut menu.
                If Not (cmdBarCtl Is Nothing) Then
                    cmdBarCtl.Delete()
                End If
            Catch e As System.Exception
                System.Windows.Forms.MessageBox.Show(e.ToString)
            End Try
        End Sub
    
        Public Sub OnAddInsUpdate(ByRef custom As Array) Implements _
          IDTExtensibility2.OnAddInsUpdate
        End Sub
    
        Public Sub OnStartupComplete(ByRef custom As Array) Implements _
          IDTExtensibility2.OnStartupComplete
        End Sub
    
        Public Sub OnBeginShutdown(ByRef custom As Array) Implements _
          IDTExtensibility2.OnBeginShutdown
        End Sub
    
        Public Sub QueryStatus(ByVal commandName As String, ByVal _
          neededText As vsCommandStatusTextWanted, ByRef status As _
          vsCommandStatus, ByRef commandText As Object) Implements _
          IDTCommandTarget.QueryStatus
            If commandName = "ContextCmd.Connect.newCmd" Then
                status = CType(vsCommandStatus.vsCommandStatusEnabled _
                  + vsCommandStatus.vsCommandStatusSupported, _
                  vsCommandStatus)
            Else
                status = vsCommandStatus.vsCommandStatusUnsupported
            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 = "ContextCmd.Connect.newCmd" Then
                    handled = True
                    System.Windows.Forms.MessageBox.Show("Add-in _
                      running...")
                End If
            End If
        End Sub
    End Class
    
  5. Dodaj kod, który ma zostać uruchomiony po kliknięciu polecenia w procedurze Exec.

  6. Kompiluj dodatek i następnie uruchom go.

  7. Wyświetl Listę zadań klikając Lista zadań w menu Widok.

  8. W menu Narzędzia kliknij Menedżer dodatków.

  9. Aktywuj dodatek ContextCmd przez zaznaczenie pola wyboru obok niego w Menedżerze dodatków.

  10. Kliknij prawym przyciskiem myszy Lista zadań.

    ContextCmd dodatek polecenia pojawi się w menu skrótów.

Zobacz też

Zadania

Porady: kontrolowanie dodatków za pomocą menedżera dodatków

Porady: tworzenie dodatku

Wskazówki: tworzenie kreatora

Koncepcje

Wyświetlanie dodatków na paskach narzędzi i menu

Rejestracja dodatków

Wykres modelu obiektów automatyzacji

Inne zasoby

Tworzenie dodatków i kreatorów

Visual Studio — Polecenia i przełączniki