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

Signaler
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011
-
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
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)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
étrange, pourtant ton code est nikel



enfin, en VB6 ^^

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

Merci Renfield, pour une fois que ça ne m'arrange pas que mon code soit bon!
:-s

Faut bien utiliser keypress comme un sub?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
euh....
en fait t'as pas lu, si?
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

Non j'avais pas lu, on s'est croisé :-)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
oublie mon code, joue avec les propriétés AcceptButton et CancelButton de ton formulaire
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
donne le focus a aute chose
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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

Merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
Me.Focus
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
ton bouton a le focus ?
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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é.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
c'est le bouton par défaut ? (AcceptButton) ?
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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!
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

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à?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
non, ce doit etre parce que le tabindex de ton bouton lui donne le focus au chargement de la form...
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 septembre 2011

Il a le tabindex 11 :-s

Je ne comprends plus là!
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
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...