Touche entrée sur fenetre

Résolu
Lokomass Messages postés 191 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 15 mai 2013 - 18 déc. 2009 à 08:30
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 déc. 2009 à 10:02
Bonjour,

Dans ma fenetre VB nommée Enable, j'aimerai surveiller lorsque j'appuie sur entrée.
J'ai un textbox que je rempli, et apres je dois clicker sur un bouton ok pour valider.
Seulement j'aimerais ne pas avoir a cliquer, mais juste appuyer sur entrée pour appeler le bouton OK directement.

J'ai fait ce code :

Private Sub Enable_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    Call OK_Click
End If
End Sub


Mais je n'appelle pas ma fonction OK.
Quelque chose cloche, mais quoi ?


Merci de votre aide

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
18 déc. 2009 à 09:40
mets la propriété Default de ton bouton OK à True

Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 223
18 déc. 2009 à 08:41
Bonjour,
Nous avons déjà parlé souvent : même si ta Form à sa propriété KeyPreview à True, condition sine qua non de la gestion des "pressages" de touches : Si elle contient certains autres contrôles valides tels des boutons de commande, d'option, etc... la touche Enter sera interceptée prioritairement par Windows à leur bénéfice si l'un d'entre eux a le focus.
Il y a une solution de contournement (en donnant systématiquement le focus à une textbox après chaque autre action sur les autres contrôles), mais elle est cmlairement scabreuse.

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Lokomass Messages postés 191 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 15 mai 2013 1
18 déc. 2009 à 08:54
Merci de ton aide,

Ce qui veut dire que ce n'est pas possible appart la solution de contournement ?
Si j'utilise la deuxieme possiblité, qu'est ce que je risque et comment dois je faire ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 223
18 déc. 2009 à 08:59
Va lire la dernière discussion à ce propos :

http://www.vbfrance.com/forum/sujet-VB6-FOCUS-PRESSE-SUR-ENTRER_1385820.aspx

Tu seras ensuite seul à pouvoir déterminer quels sont les gênes et risques éventuels engendrés (en fonction de ce que TU connais et es seul à connaître de ton appli, de son ergonomie, etc...)
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0

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

Posez votre question
Lokomass Messages postés 191 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 15 mai 2013 1
18 déc. 2009 à 09:49
C'est parfait ça fonctionne 1000 merci encore Renfield
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
18 déc. 2009 à 10:02
- "la calculatrice de Windows est faite par ... Microsoft"
- "...la touche ENTER, elle est en effet interceptée prioritairement par Windows..."

Discours de café du commerce que tout cela.
On se fout absolument de qui est l'éditeur d'un prog puisqu'il est reproductible TRES simplement. Suffit de coder pour ce faire car je rappelle que la calculatrice comme tout autre vrai prog est faite en C et non pas en script sur une quelconque virtual machine telle que VB.
TOUTES les touches, pas seulement ENTER, sont interceptées par Windows puisque c'est LE role d'un OS de gérer les périphériques. Quand Windows reçoit un event sur la ligne d'interruptions clavier, il la translate en 'message' qu'il nous refile sur la pompe à message du prog de 1er plan à travers une structure MSG. Ensuite libre à chacun de traiter cela comme il l'entend dans son prog.
Il se trouve qu'en interprété, la pompe à messages est cachée au fond la VM et que vous n'y avez pas un accès direct, voila l'explication.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous