Comment : lier une commande à plusieurs raccourcis clavier

Les compléments Visual Studio sont déconseillés dans Visual Studio 2013. Vous devriez mettre vos compléments à niveau vers des extensions VSPackage. Pour plus d'informations sur les mises à jour, consultez FAQ : conversion de compléments en extensions VSPackage.

Vous pouvez lier plusieurs raccourcis clavier à une commande. Ce procédé peut s'avérer utile, par exemple, lorsque deux utilisateurs qui travaillent sur un projet commun préfèrent employer chacun un raccourci distinct pour la même commande. Pour effectuer cette liaison, passez les raccourcis en tant qu'éléments de chaîne dans un tableau de type Object.

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez.Pour plus d'informations, consultez Paramètres Visual Studio.

Pour lier une commande à plusieurs raccourcis clavier

  1. Utilisez l'Assistant Complément Visual Studio pour créer un complément. Nommez le projet, puis cliquez sur OK pour démarrer l'Assistant.

    Pour plus d'informations sur l'utilisation de l'Assistant Complément Visual Studio, consultez Comment : créer un complément.

  2. Dans la page Sélectionner un langage de programmation, sélectionnez Créer un complément à l'aide de Visual C# pour exécuter l'exemple Visual C# de cette rubrique ou Créer un complément à l'aide de Visual Basic pour exécuter l'exemple Visual Basic.

  3. Collez l'exemple de fonction ci-dessous dans la classe Connect du code généré par l'Assistant Complément Visual Studio.

  4. Pour créer une copie des paramètres de clavier par défaut, accédez à ..\Program Files\Microsoft Visual Studio 10\Common7\IDE\. Cliquez avec le bouton droit sur l'un des fichiers .vsk, puis cliquez sur Copier. Collez la copie dans le même dossier. La copie est nommée « Copie de .vsk file name".

  5. Renommez la copie du fichier.

  6. Pour vérifier que le nouveau fichier .vsk apparaît dans la liste des configurations du clavier, cliquez dans le menu Outils de Visual Studio sur Options.

  7. Dans le volet de gauche de la boîte de dialogue Options, développez le dossier Environnement puis sélectionnez Clavier.

    Vérifiez que le nom du fichier .vsk renommé antérieurement apparaît dans la liste Appliquer cet autre schéma de configuration du clavier.

  8. Avant d'exécuter l'exemple de complément, vérifiez que la configuration du clavier est (Par défaut). Pour ce faire, cliquez sur Réinitialiser dans le volet Clavier de la boîte de dialogue Options.

  9. À l'étape prop.Value = "< Filename.vsk>" de l'exemple de complément, remplacez <Filename.vsk> par le nom du nouveau schéma de clavier spécifié antérieurement.

  10. Appelez la fonction à partir de la méthode OnConnection, comme indiqué dans Comment : compiler et exécuter les exemples de code du modèle objet Automation.

  11. Générez le complément, exécutez-le ensuite en cliquant dans le menu Outils sur Gestionnaire de compléments, en sélectionnant le complément que vous avez créé, puis en cliquant sur OK.

    La commande est liée à deux touches de raccourci différentes. Appuyez sur CTRL+MAJ+ALT+Y ou sur CTRL+MAJ+ALT+X pour afficher la boîte de dialogue Nouveau fichier.

Exemple

L'exemple suivant remplace le raccourci clavier existant par deux nouveaux raccourcis clavier.

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; 
} 

Voir aussi

Tâches

Comment : lier une commande à une touche de raccourci unique

Comment : conserver les raccourcis clavier existants

Concepts

Format de paramètre de la propriété Bindings

Autres ressources

Association de touches à des commandes de complément