Touche entrée sur fenetre [Résolu]

Signaler
Messages postés
191
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
15 mai 2013
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
mets la propriété Default de ton bouton OK à True

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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.
Messages postés
191
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
15 mai 2013
1
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 ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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.
Messages postés
191
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
15 mai 2013
1
C'est parfait ça fonctionne 1000 merci encore Renfield
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
- "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++