Procedura: esporre un componente aggiuntivo in un menu di scelta rapida
Se è vero che il modello di automazione di Visual Studio semplifica l'inserimento dei comandi di un componente aggiuntivo nei menu di primo livello, ad esempio nel menu Strumenti, è anche possibile aggiungere comandi ai menu e sottomenu di scelta rapida.
Per eseguire questa operazione, è tuttavia necessario utilizzare il modello a oggetti della barra dei comandi di Microsoft Visual Studio per definire in modo esplicito il menu e il sottomenu di scelta rapida di destinazione.Quindi, è necessario chiamare il metodo AddControl di Visual Studio.
I menu di scelta rapida sono simili agli altri menu di Visual Studio. Per visualizzarli, è necessario selezionare una freccia GIÙ nel menu a discesa oppure fare clic con il pulsante destro del mouse su un elemento nell'ambiente di sviluppo integrato (IDE).
Per aggiungere un comando a un menu di scelta rapida, o a un altro menu o barra degli strumenti, è innanzitutto necessario conoscere il nome del comando.Per individuarlo, esplorare il nodo Tastiera nella finestra di dialogo Opzioni sul menu Strumenti.
Nella procedura seguente viene illustrato come aggiungere un comando di un componente aggiuntivo al menu di scelta rapida Elenco attività.
[!NOTA]
È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma.Queste procedure sono state sviluppate con le Impostazioni generali per lo sviluppo attive.Per modificare le impostazioni, scegliere Importa/EsportaImpostazioni dal menu Strumenti.Per ulteriori informazioni, vedere Impostazioni di Visual Studio.
Per aggiungere un comando di un componente aggiuntivo a un menu di scelta rapida
Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
Nella finestra di dialogo Nuovo progetto espandere Altri tipi di progetto selezionare Estensibilità, quindi scegliere Componente aggiuntivo Visual Studio nel riquadro Modelli.
Assegnare al componente aggiuntivo il nome ContextCmd, quindi fare clic su OK per avviare la Creazione guidata componente aggiuntivo di Visual Studio.
Creare anche un'interfaccia utente per il componente aggiuntivo selezionando la casella Creare un'interfaccia utente con barra dei comandi per il componente aggiuntivo?.
Verrà aggiunto il codice d'interfaccia utente necessario al metodo OnConnection.Verranno aggiunti anche il metodo Exec, che gestisce l'evento generato quando si seleziona il comando del componente aggiuntivo, e il metodo QueryStatus, che fornisce informazioni sullo stato del componente aggiuntivo.
Sostituire il codice con quanto segue:
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
Aggiungere il codice che si desidera venga eseguito quando si seleziona il comando nella routine Exec.
Compilare il componente aggiuntivo ed eseguirlo.
Visualizzare l'Elenco attività scegliendo Elenco attività dal menu Visualizza.
Scegliere Gestione componenti aggiuntivi dal menu Strumenti.
Attivare il componente aggiuntivo ContextCmd selezionando la casella corrispondente in Gestione componenti aggiuntivi.
Fare clic con il pulsante destro del mouse su Elenco attività.
Nel menu di scelta rapida verrà visualizzato il comando del componente aggiuntivo ContextCmd.
Vedere anche
Attività
Procedura: controllare i componenti aggiuntivi tramite Gestione componenti aggiuntivi
Procedura: creare un componente aggiuntivo
Procedura dettagliata: creazione di una procedura guidata
Riferimenti
Comandi e opzioni di Visual Studio
Concetti
Visualizzazione di componenti aggiuntivi nei menu e sulle barre degli strumenti
Registrazione di un componente aggiuntivo
Grafico del modello a oggetti di automazione