Condividi tramite


Procedura: associare un comando a più tasti di scelta rapida

È possibile associare più di un tasto di scelta rapida a un comando. Ciò può risultare utile, ad esempio, quando due utenti che lavorano su un progetto preferiscono ognuno un collegamento diverso per eseguire lo stesso comando. Questa associazione viene eseguita passando i collegamenti come elementi stringa in una matrice di tipo Object.

Nota

Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. Questi elementi sono determinati dall'edizione di Visual Studio in uso e dalle impostazioni utilizzate. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Per associare un comando a più tasti di scelta rapida

  1. Utilizzare Creazione guidata componente aggiuntivo di Visual Studio per creare un componente aggiuntivo. Denominare il progetto e scegliere OK per avviare la procedura guidata.

    Per ulteriori informazioni sull'utilizzo della Creazione guidata componente aggiuntivo di Visual Studio, vedere Procedura: creare un componente aggiuntivo.

  2. Nella pagina Selezionare un linguaggio di programmazione selezionare Crea componente aggiuntivo utilizzando Visual C# per eseguire l'esempio di Visual C# riportato in questo argomento oppure Crea componente aggiuntivo utilizzando Visual Basic per eseguire l'esempio di Visual Basic.

  3. Incollare la funzione dell'esempio nella classe Connect del codice generato dalla Creazione guidata componente aggiuntivo di Visual Studio.

  4. Per creare una copia delle impostazioni predefinite da tastiera, passare a .. \Programmi\Microsoft Visual Studio 10\Common7\IDE\. Fare clic con il pulsante destro del mouse su uno dei due file con estensione vsk e scegliere Copia. Incollare la copia nella stessa cartella. La copia viene denominata "Copia di nome del file con estensione vsk".

  5. Rinominare la copia del file.

  6. Per verificare che il nuovo file con estensione vsk venga visualizzato nell'elenco dei tasti di scelta rapida, in Visual Studio scegliere Opzioni dal menu Strumenti.

  7. Nel riquadro sinistro della finestra di dialogo Opzioni espandere la cartella Ambiente e selezionare Tastiera.

    Assicurarsi che il nome del file con estensione vsk rinominato in precedenza venga visualizzato nell'elenco Applica il seguente schema aggiuntivo di mappatura della tastiera.

  8. Prima di eseguire l'esempio del componente aggiuntivo, verificare che i tasti di scelta rapida siano impostati su (Predefinito). Questa operazione può essere eseguita selezionando Reimposta nel riquadro Tastiera della finestra di dialogo Opzioni.

  9. Nel passaggio prop.Value = "< Filename.vsk>" dell'esempio del componente aggiuntivo sostituire <Filename.vsk> con il nome del nuovo schema di mappatura della tastiera specificato.

  10. Chiamare la funzione dal metodo OnConnection, come illustrato in Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.

  11. Compilare il componente aggiuntivo ed eseguirlo facendo clic su Gestione componenti aggiuntivi dal menu Strumenti, selezionando il componente aggiuntivo creato e scegliendo quindi OK.

    Il comando viene associato a due tasti di scelta rapida diversi. Premere CTRL+MAIUSC+ALT+Y o CTRL+MAIUSC+ALT+X per visualizzare la finestra di dialogo Nuovo file.

Esempio

Nell'esempio riportato di seguito il tasto di scelta rapida esistente viene sostituito con due nuovi tasti.

Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    BindSingle(_applicationObject)
End Sub
Sub BindSingle(ByVal dte As DTE2)
    ' Adds two new keybindings to a command.
    Dim cmds As Commands
    Dim cmd As Command
    Dim props As EnvDTE.Properties = DTE.Properties("Environment", _"Keyboard")
    Dim prop As EnvDTE.Property
    Dim bindings(1) As Object

    ' Make a writeable copy of the default keymapping scheme.
    prop = props.Item("SchemeName")
    prop.Value = "<FileName.vsk>"
    ' Assign the two shortcut key combinations, CTRL+SHIFT+ALT+Y and 
    ' CTRL+SHIFT+ALT+X, to the two bindings array elements. 
    bindings(0) = "Global:: CTRL+SHIFT+ALT+Y"
    bindings(1) = "Global:: CTRL+SHIFT+ALT+X"
    ' Set references to the Commands collection and the File.NewFile
    ' command.
    cmds = DTE.Commands
    cmd = cmds.Item("File.NewFile")
    ' Assign the contents of the bindings array to the Bindings 
    ' property.
    cmd.Bindings = bindings
End Sub
public void OnConnection(object application,
 ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    BindMultiple(_applicationObject ); 
}

public void BindMultiple( DTE2 dte ) 
{ 
    // Adds two new keybindings to a command.
    Commands cmds = null; 
    Command cmd = null; 
    EnvDTE.Properties props = dte.get_Properties( "Environment",
 "Keyboard"); 
    EnvDTE.Property prop = null; 
    Object[] bindings = new Object[ 2 ]; 

    // Make a writeable copy of the default keymapping scheme.
    prop = props.Item( "SchemeName" ); 
    prop.Value = "<FileName.vsk>"; 
    // Assign the two shortcut key combinations, CTRL+SHIFT+ALT+Y and 
    // CTRL+SHIFT+ALT+X, to the two bindings array elements. 
    bindings[ 0 ] = "Global:: CTRL+SHIFT+ALT+Y"; 
    bindings[ 1 ] = "Global:: CTRL+SHIFT+ALT+X"; 
    // Set references to the Commands collection and the File.NewFile
    // command.
    cmds = dte.Commands; 
    cmd = cmds.Item( "File.NewFile", -1 ); 
    // Assign the contents of the bindings array to the Bindings 
    // property.
    cmd.Bindings = bindings; 
} 

Vedere anche

Attività

Procedura: associare un comando a un unico tasto di scelta rapida

Procedura: mantenere i tasti di scelta rapida esistenti

Concetti

Formato dei parametri della proprietà Bindings

Altre risorse

Associazione dei comandi dei componenti aggiuntivi a un tasto