Détecter appuie sur une touche [Résolu]

Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
- 22 mai 2009 à 09:01 - Dernière réponse :
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
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
Afficher la suite 

Votre réponse

21 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
22 mai 2009 à 09:19
3
Merci
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)

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
22 mai 2009 à 09:13
0
Merci
étrange, pourtant ton code est nikel



enfin, en VB6 ^^

il est pas correct en .Net
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
22 mai 2009 à 09:27
0
Merci
Merci Renfield, pour une fois que ça ne m'arrange pas que mon code soit bon!
:-s

Faut bien utiliser keypress comme un sub?
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
22 mai 2009 à 09:30
0
Merci
euh....
en fait t'as pas lu, si?
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
22 mai 2009 à 09:37
0
Merci
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
Commenter la réponse de cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
22 mai 2009 à 09:38
0
Merci
Non j'avais pas lu, on s'est croisé :-)
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
22 mai 2009 à 09:39
0
Merci
oublie mon code, joue avec les propriétés AcceptButton et CancelButton de ton formulaire
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
22 mai 2009 à 17:50
0
Merci
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
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
22 mai 2009 à 19:46
0
Merci
donne le focus a aute chose
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
22 mai 2009 à 20:50
0
Merci
Hum oui j'y ai pensé mais peut-on donner le focus à un form?
Si oui comment, j'ai pas trouvé.

Merci
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
26 mai 2009 à 08:14
0
Merci
Me.Focus
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
26 mai 2009 à 08:46
0
Merci
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.
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
26 mai 2009 à 09:00
0
Merci
ton bouton a le focus ?
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
26 mai 2009 à 09:20
0
Merci
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é.
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
26 mai 2009 à 09:24
0
Merci
c'est le bouton par défaut ? (AcceptButton) ?
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
26 mai 2009 à 09:42
0
Merci
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!
Commenter la réponse de cs_Liro
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
26 mai 2009 à 09:46
0
Merci
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à?
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
26 mai 2009 à 09:49
0
Merci
non, ce doit etre parce que le tabindex de ton bouton lui donne le focus au chargement de la form...
Commenter la réponse de Renfield
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
26 mai 2009 à 09:58
0
Merci
Il a le tabindex 11 :-s

Je ne comprends plus là!
Commenter la réponse de cs_Liro
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
26 mai 2009 à 10:03
0
Merci
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...
Commenter la réponse de Renfield

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.