Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
In genere, quando viene modificato un tasto di scelta rapida per un comando, quelli esistenti vanno persi. Nell'esempio riportato di seguito, tuttavia, viene illustrato come associare due nuove combinazioni di tasti a un comando e conservare quelle esistenti.
Per visualizzare l'elenco corrente dei comandi, eseguire l'esempio ListKeyBindings come illustrato nell'argomento Procedura: visualizzare tasti di scelta rapida esistenti.
Nota: |
|---|
Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni attive. Queste routine 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 nuovi tasti di scelta rapida e conservare quelli esistenti
Utilizzare la Creazione guidata componente aggiuntivo di Visual Studio per creare un nuovo componente aggiuntivo. Assegnare un nome al progetto e scegliere OK per avviare la procedura guidata.
Per ulteriori informazioni sull'utilizzo della Creazione guidata componente aggiuntivo, vedere Procedura: creare un componente aggiuntivo.
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.
Incollare la funzione dell'esempio riportata di seguito nella classe Connect del codice generato dalla Creazione guidata componente aggiuntivo di Visual Studio.
Per creare una copia delle impostazioni della tastiera predefinite, accedere a C:\Programmi\Microsoft Visual Studio 8\Common7\IDE.
Fare clic con il pulsante destro del mouse su uno dei file vsk e scegliere Copia dal menu di scelta rapida.
Incollare la copia nella stessa cartella.
La copia viene denominata "Copia di <nome file vsk>".
Rinominare il file copiato.
Per verificare che il nuovo file vsk venga visualizzato nell'elenco dei tasti di scelta rapida, in Visual Studio scegliere Opzioni dal menu Strumenti.
Nel riquadro sinistro della finestra di dialogo Opzioni espandere la cartella Ambiente e selezionare Tastiera.
Assicurarsi che il nome del file vsk specificato nel passaggio 7 venga visualizzato nel menu a discesa Applica il seguente schema aggiuntivo di mappatura della tastiera.
Prima di eseguire l'esempio del componente aggiuntivo, assicurarsi 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.
Sostituire <Filename.vsk> con il nome del nuovo schema di mappatura della tastiera specificato nel passaggio 7 nel passaggio prop.Value = "< Filename.vsk>" dell'esempio del componente aggiuntivo.
Chiamare la funzione dal metodo OnConnection come descritto in Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.
Generare il componente aggiuntivo.
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 a nuovi tasti di scelta rapida (CTRL+ALT+MAIUSC+Y e CTRL+ALT+MAIUSC+U) oltre a quelli originali.
Esempio
Nell'esempio di componente aggiuntivo riportato di seguito viene illustrato come associare due nuove combinazioni di tasti a un comando, conservando contemporaneamente quelle 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ù combinazioni di tasti di scelta rapida
Concetti
Formato dei parametri della proprietà Bindings
Altre risorse
Associazione dei comandi dei componenti aggiuntivi a un tasto
Nota: