Détecter appuie sur une touche

Résolu
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011
- 22 mai 2009 à 09:01
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011
- 26 mai 2009 à 13:38
Bonjour,

Je suis sous visual basic 2008 express.
Je voudrais détecter l'appuie sur une touche dans mon form principal.

J'ai mis:
Me.KeyPreview = True
dans mon form principal ainsi que
    Public Sub form1_KeyPress(ByVal KeyAscii As Integer)
        Select Case KeyAscii
            Case 13
                MsgBox("Return")
            Case 27
                MsgBox("Escape")
        End Select
en dehors de mon form principal.

Quand je lance le débugage le form se charge comme voulu mais l'appuie sur Enter ou Echap ne donne rien.
J'ai cherché sur le net et je ne trouve pas.
Es-ce que quelqu'un peut m'aider SVP?

Merci

21 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2009 à 09:19
et pis d'abord, faut pas confondre KeyCode et KeyAscii, c'est mal !

je veux dire par là que KeyPress te donne le code Ascci du caractère généré par la pression de la touche.
Cette pression est observé par KeyDown et KeyUp qui te filent e code de la touche pressée.

en l'occurrence, la touche Echap.... ben elle génère aucun caractère. KeyPress ne sera donc jamais déclenché par cette touche.


Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Windows.Forms.Keys.Escape
MessageBox.Show("Escape")
Case Windows.Forms.Keys.Enter
MessageBox.Show("Enter")
End Select
End Sub


le 'en dehors de ton formulaire principal' mérite d'être explicité.

après, s'il s'agit juste d'activer un bouton 'OK' ou 'Cancel' en pressant ces touches, tu as d'autres moyens (propriétés AcceptButton et CancelButton de ton formulaire)
3
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2009 à 09:13
étrange, pourtant ton code est nikel



enfin, en VB6 ^^

il est pas correct en .Net
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

22 mai 2009 à 09:27
Merci Renfield, pour une fois que ça ne m'arrange pas que mon code soit bon!
:-s

Faut bien utiliser keypress comme un sub?
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2009 à 09:30
euh....
en fait t'as pas lu, si?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

22 mai 2009 à 09:37
Ouaih bah chapeau Renfield avec ton code ça marche!

En fait je fais un petit soft pour compter et afficher les points lors d'un match de tennis de table.
J'ai un seul forme avec des caractères géant pour les scores et les manches et je voudrais pouvoir incrémenter facilement le score de chaque joueur avec des raccourcis sur les touches espace et return.

Un trop tout bidon en fait.
Bon vendredi
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

22 mai 2009 à 09:38
Non j'avais pas lu, on s'est croisé :-)
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2009 à 09:39
oublie mon code, joue avec les propriétés AcceptButton et CancelButton de ton formulaire
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

22 mai 2009 à 17:50
Nan, nan, car il faut gérer les manches mais aussi décrémenter le score (en cas d'erreur).
Donc je reste la dessus.

Comment je fais pour éviter à un bouton d'avoir le focus?
(après avoir cliqué sur un bouton de remise à zéro pour une nouvelle partie, dès que l'utilisateur appuie sur une touche ce même bouton est à nouveau "cliqué")

Merci
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2009 à 19:46
donne le focus a aute chose
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

22 mai 2009 à 20:50
Hum oui j'y ai pensé mais peut-on donner le focus à un form?
Si oui comment, j'ai pas trouvé.

Merci
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 mai 2009 à 08:14
Me.Focus
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

26 mai 2009 à 08:46
J'ai mis:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Call restart()
        Me.Focus
    End Sub

Et pourtant quand j'appuie sur espace ou Enter c'est comme si je cliquais sur le bouton.
En je veux éviter que par erreur (en appuyant sur enter ou espace) ça lance la procédure restart.
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 mai 2009 à 09:00
ton bouton a le focus ?
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

26 mai 2009 à 09:20
C'est un bouton classique et par rapport aux autres il a un contour bleu.
Et lorsque que j'appuie sur Enter ou Espace il est clické.
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 mai 2009 à 09:24
c'est le bouton par défaut ? (AcceptButton) ?
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

26 mai 2009 à 09:42
Euhh, bonne question! Comment je peux le vérifier?

Mais ça doit être ça. comment faire pour que mon form n'est aucun AcceptButton?

Merci de ta patience Renfield!
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

26 mai 2009 à 09:46
Dans mon Form il n'y a aucun AcceptButton

Es-ce qu'il y en a un de défini par défaut dans ces cas là?
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 mai 2009 à 09:49
non, ce doit etre parce que le tabindex de ton bouton lui donne le focus au chargement de la form...
0
cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

26 mai 2009 à 09:58
Il a le tabindex 11 :-s

Je ne comprends plus là!
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 mai 2009 à 10:03
re-racontes moi l'histoire, parce que je suis perdu.

au départ, tu voulais detecter la pression de Entree pour simuler le click sur un bouton, et là, tu te plaint de ce comportement...
0