Shortcuts - raccourcis claviers

Résolu
Signaler
Messages postés
121
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
1 juillet 2015
-
Messages postés
6
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
25 septembre 2008
-
Bonjour,

Je voudrais assigner par exemple la touche "Entrée" à un bouton. Comment puis-je faire ? Merci.

10 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Tu peux aussi utiliser KeyDown.

Exemple :
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.F12
                Button1.PerformClick()
            Case Keys.F11
                Button2.PerformClick()
        End Select
    End Sub

Attention, il te faudra probablement que tu mette la propriété KeyPreview de ta form à True pour qu'elle intercepte les touches avant les autres controles.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Dans ta form à la propriété AcceptButton indique lui ton bouton.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
121
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
1 juillet 2015

A super je ne savais pas !

Mais maintenant si je veux lui assigner n'importe quelle touche !?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Non, sur la Form, tu vas trouver une propriété pour la touche Entrée et une pour la touche Cancel.

Après si tu veux asssigner d'autres touches à d'autres boutons, il te faut le gerer manuellement par le code en interceptant la touche appuyée (évènement Keypress) et en simulant le click sur le bouton correspondant (methode PerformClick).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
121
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
1 juillet 2015

Ca ne me gêne pas de le gérer manuellement. J'ai déjà essayé d'utiliser les évènements KeyPress, mais je n'arrive pas à assigner une touche précise à cet évènement !
Messages postés
121
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
1 juillet 2015

J'ai mis la propriété KeyPreview sur True.

Aussi, je ne peux pas faire e.KeyCode, seulement e.KeyChar
    Select Case e.KeyCode
            Case Keys.F12   'ici il me donne une erreur et me propose : Case ChrW(Keys.F12)
                Button1.PerformClick()
    End Select

M'enfin dans les 2 cas rien ne se passe.
Messages postés
121
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
1 juillet 2015

Je n'ai rien dit ! Je m suis trompé d'évènement, j'avais utilisé le KeyPress au lieu du KeyDown.
Merci casy, mainteant ça fonctionne.
Messages postés
6
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
25 septembre 2008

bonjour,
j'ai essaye la methode performClick mais cela ne fonctionne pas.
faut il declarer la methode?et comment?
merci
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
PerformClick n'existe que sur les boutons et que en .Net.

si tu es en VB6, PerformClick n'existe pas. Il faut passer par les autres solutions

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
6
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
25 septembre 2008

comment je peux simuler un click sur un bouton si je suis en visual basic pour access 2007?