Comment : lier une commande à une touche de raccourci unique

Mise à jour : novembre 2007

En plus d'afficher les combinaisons de touches de raccourci, vous pouvez utiliser la propriété Bindings pour définir ou modifier les combinaisons de touches d'une commande Visual Studio. Remarquez que lorsque vous modifiez une combinaison de touches, elle remplace la combinaison de touches antérieure (l'ancienne combinaison est perdue). De plus, si la nouvelle combinaison de touches est utilisée par une autre commande, elle est supprimée de l'ancienne commande et réassignée à la nouvelle.

Toutefois, une méthode permet de conserver une combinaison de touches afin qu'une nouvelle combinaison de touches constitue une touche de raccourci supplémentaire au lieu de remplacer l'ancienne. Cette méthode est examinée dans la rubrique, Comment : conserver les combinaisons de touches de commande existantes.

Remarque :

Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide. Ces procédures ont été développées avec les paramètres de développement généraux actifs. Pour modifier vos paramètres, sélectionnez Importer et ExporterParamètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Procédure

Pour lier une commande à une touche de raccourci

  1. Utilisez l'Assistant Complément de 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# ci-dessous ou Créer un complément à l'aide de Visual Basic pour exécuter l'exemple Visual Basic.

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

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

    Assurez-vous que le nom du fichier vsk renommé à l'étape 7 s'affiche dans le menu déroulant Appliquer cet autre schéma de configuration du clavier.

  5. Avant d'exécuter l'exemple de complément, assurez-vous 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.

  6. Appelez la fonction depuis la méthode OnConnection conformément à la description de Comment : compiler et exécuter les exemples de code du modèle objet Automation.

  7. Générez le complément.

  8. Pour exécuter le complément, cliquez sur Gestionnaire de compléments dans le menu Outils, sélectionnez le complément que vous avez créé, puis cliquez sur OK.

    La commande est liée à une touche de raccourci globale unique. Vous pouvez tester la configuration du clavier en appuyant sur CTRL+MAJ+ALT+X, pour provoquer l'affichage de la boîte de dialogue Nouveau fichier.

Exemple

L'exemple de complément suivant montre comment lier la commande File.NewFile à une touche de raccourci unique (F2).

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)
    BindingsExample(_applicationObject)
            
End Sub

Sub BindingsExample(ByVal dte As DTE2)
    Dim cmds As Commands
    Dim cmd As Command
    Try
        ' Set references to the Commands collection and the 
        ' File.NewFile command.
        cmds = DTE.Commands
        cmd = cmds.Item("File.NewFile")

        ' Assigns the command (File.NewFile) globally to the F2 key.
        cmd.Bindings = "Global::F2"
        MsgBox("key remapped")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    BindingsExample(_applicationObject);

}

public void BindingsExample(DTE2 dte)
{
    Commands cmds;
    Command cmd;

    try
    {
        // Set references to the Commands collection and the 
        // File.NewFile command.
        cmds = dte.Commands;
        cmd = cmds.Item("File.NewFile", 1);

        // Assigns the command (File.NewFile) globally to the F2 key.
        cmd.Bindings = "Global::F2";
        System.Windows.Forms.MessageBox.Show("key remapped");
    }
    catch (Exception ex)
    {
        System.Windows.Forms.MessageBox.Show(ex.Message);
    }
}

Voir aussi

Tâches

Comment : lier une commande à plusieurs combinaisons de touches de raccourci

Comment : conserver les combinaisons de touches de commande existantes

Concepts

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

Autres ressources

Association de touches à des commandes de complément