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 74
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 74
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 74
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 74
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 74
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 74
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 74
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 74
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 74
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 74
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
Rejoignez-nous