Condividi tramite


Procedura: mantenere i tasti di scelta rapida esistenti

I componenti aggiuntivi di Visual Studio sono deprecati in Visual Studio 2013. Si consiglia di effettuare l'aggiornamento dei componenti aggiuntivi alle estensioni di VSPackage. Per ulteriori informazioni sull'aggiornamento, consultare Domande frequenti: conversione di componenti aggiuntivi in VSPackage Extensions.

In genere, quando si modifica il comando di un tasto di scelta rapida, il collegamento esistente viene perso. Nell'esempio seguente viene illustrato come associare due nuovi tasti di scelta rapida a un comando e mantenere quelli esistenti.

Per visualizzare un elenco di comandi e di relativi tasti di scelta rapida correnti, eseguire l'esempio ListKeyBindings come illustrato nell'argomento Procedura: visualizzare tasti di scelta rapida esistenti.

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 Personalizzazione delle impostazioni di sviluppo in Visual Studio.

Per aggiungere nuovi tasti di scelta rapida e mantenere quelli esistenti

  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 di seguito oppure Crea componente aggiuntivo utilizzando Visual Basic per eseguire l'esempio di Visual Basic.

  3. Incollare la funzione dell'esempio (illustrata successivamente in questo argomento) nella classe Connect del codice generato dalla Creazione guidata componente aggiuntivo di Visual Studio.

  4. Per creare una copia delle impostazioni predefinite della tastiera, accedere a C:\Programmi\Microsoft Visual Studio 10\Common7\IDE.

  5. Fare clic con il pulsante destro del mouse su uno dei due file con estensione vsk e scegliere Copia.

  6. Incollare la copia nella stessa cartella, quindi rinominarla.

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

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

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

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

  10. Nel passaggio prop.Value = "<Filename.vsk>" dell'esempio del componente aggiuntivo sostituire <Filename.vsk> con il nome del file con estensione vsk specificato in precedenza.

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

  12. Compilare il componente aggiuntivo.

  13. Per eseguire il componente aggiuntivo, scegliere Gestione componenti aggiuntivi dal menu Strumenti, selezionare il componente aggiuntivo creato, quindi scegliere OK.

    Il comando File.NewFile viene associato ai nuovi tasti di scelta rapida, CTRL+ALT+MAIUSC+Y e CTRL+ALT+MAIUSC+U, nonché ai collegamenti originali.

Esempio

Nell'esempio di componente aggiuntivo seguente viene illustrato come associare due nuovi tasti di scelta rapida a un comando e mantenere quelli esistenti.

Sub PreserveBindings()
    ' Adds two new key bindings while preserving the existing ones.
    Dim cmds As Commands
    Dim cmd As Command
    Dim props As EnvDTE.Properties = DTE.Properties("Environment", _
    "Keyboard")
    Dim prop As EnvDTE.Property
    Dim bindings() As Object
    Dim bindingNumber As Integer

    ' Set references to the Commands collection and the File.NewFile
    ' command.
    cmds = DTE.Commands
    cmd = cmds.Item("File.NewFile")
    ' Make a writeable copy of the default keymapping scheme.
    prop = props.Item("SchemeName")
    prop.Value = "<FileName.vsk>"
    ' Retrieve the current bindings for the command.
    bindings = cmd.Bindings
    ' Get the number of bindings for the command.
    bindingNumber = bindings.Length
    ' Add two more elements to the array to accomodate two
    ' new commands.
    ReDim Preserve bindings(bindingNumber + 1)
    ' Add the new bindings to the existing ones in the array.
    bindings(bindingNumber) = "Global::CTRL+ALT+SHIFT+Y"
    bindings(bindingNumber + 1) = "Global::CTRL+ALT+SHIFT+U"
    ' Assign the contents of the bindings array to the Bindings 
    ' property.
    cmd.Bindings = bindings
End Sub
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst, ref
 System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    PreserveBindings((_applicationObject); 
}

// Add-in example for TextSelection.FindPattern.
// Also shows usage of these methods and properties:
//    TextSelection.SelectLine
public void PreserveBindings( DTE dte ) 
{ 
    // Adds two new key bindings while preserving the existing ones.
    Commands cmds = null; 
    Command cmd = null; 
    EnvDTE.Properties props = dte.get_Properties( "Environment",
 "Keyboard"); 
    EnvDTE.Property prop = null; 
    Object[] bindings = null; 
    int bindingNumber = 0; 

    //  Set references to the Commands collection and the File.NewFile
    //  command.
    cmds = dte.Commands; 
    cmd = cmds.Item( "File.NewFile", -1 ); 
    // Make a writeable copy of the default keymapping scheme.
    prop = props.Item( "SchemeName" ); 
    prop.Value = "<FileName.vsk>"; 
    // Retrieve the current bindings for the command.
    bindings = ( ( System.Object[] )( cmd.Bindings ) ); 
    // Get the number of bindings for the command.
    bindingNumber = bindings.Length; 
    // Add two more elements to the array to accomodate two
    // new commands.
    // Create temp variable for copying values. 
    // Arrays are zero-based in C#.
    object[] temp = new object[ bindingNumber + 2 ]; 
    System.Array.Copy( bindings, temp, Math.Min( bindings.Length,
 temp.Length ) ); 
    bindings = temp; 
    // Add the new bindings to the existing ones in the array.
    bindings[ bindingNumber ] = "Global::CTRL+ALT+SHIFT+Y"; 
    bindings[ bindingNumber+1 ] = "Global::CTRL+ALT+SHIFT+U"; 
    // 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: associare un comando a più tasti di scelta rapida

Concetti

Formato dei parametri della proprietà Bindings

Altre risorse

Associazione dei comandi dei componenti aggiuntivi a un tasto