cs_med_ali
Messages postés23Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 2 avril 2011
-
19 juin 2009 à 22:24
cs_med_ali
Messages postés23Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 2 avril 2011
-
22 juin 2009 à 18:07
bonjour
je travaille sur une application dont je met quelques boutons par défaut ce qui me permet d'appuyer sur la touche "Entrer" au lieu de cliquer sur le bouton le problème est que lorsque je suis dans un contrôle quelconque (TextBox,ComboBox,...) et j'appuie sur la touche "Entrer" le programme n'exécute pas par la procédure "LostFocus" ou "Validate" de ce contrôle
Comment faire pour passer par l'une ou ces deux procédures avant d'exécuter celle du bouton?
Merci bcp pour votre aide
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 juin 2009 à 05:08
Re
Par acquit de conscience, je viens de faire le test (refais -le aussi dans un projet neuf) :
Une forme
Une TextBox
Un Bouton + Default = True + une MsgBox dans le _Click
Quand le focus est dans la TextBox et que je tape sur la touche Entrée, le bouton fait bien son effet : j'ai la MsgBox
Si tu fais ce même essai, tu verras que tout fonctionne.
Maintenant, pourquoi cela ne fonctionne pas dans ton projet ... mystère.
As-tu donné des propriétés particulières à ta TextBox ?
Fais-tu des traitements dans le _KeyPress, _KeyDown ... de cette TextBox qui masquerait la touche ?
Est-ce que Windows fait un petit Beep quand tu appuis sur la touche Entrée ? (normalement, c'est ce qui se passe quand la touche est sans effet)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_med_ali
Messages postés23Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 2 avril 2011 20 juin 2009 à 13:54
Bonjour
merci jack pour tes réponses mais peut être que tu n'a pas bien compris mon problème je vais t'expliquer avec un exemple
dans le même projet que tu as crée met une MsgBox dans la procédure "Validate" ou "Lostfocus" et appuie sur la touche "Entrer" tu va remarquer que le message n'est pas affiché car ces deux procédure ne sont pas exécutés et loi biensûr je veux qu'ils seront exécuté avant NonBonton_Click()
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 juin 2009 à 10:25
Comme expliqué dans l'aide, le Validate d'une TextBox ne fonctionne que si le composant qui obtient le focus à sa propriété CauseValidate à True.
Est-ce que ton bouton a cette propriété ?
La touche Entrée dans une TextBox n'a jamais pour effet de sortir de la TextBox. C'est à toi de le gérer avec ma première réponse.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_med_ali
Messages postés23Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 2 avril 2011 22 juin 2009 à 17:15
Bonjour,
j'ai essayer ta méthode jack mais çà n'a pas marché, lorsque j'appuie sur la touche "Entrer" lorsque le focus est dans le contrôle "TextBox" (propriété CauseValidate est à True aucun évènement de ce contrôle n'est exécuté même celui de "KeyPress" et "KeyDown" (tu peux essayer pour voir)
je travaille avec vb6.0 que je maitrise bien mais j'ai pas trouvé une solution à ce problème!
cs_med_ali
Messages postés23Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 2 avril 2011 22 juin 2009 à 18:07
merci jmf0 ta méthode a bien marché mais il reste un petit problème : dans l'évènement Validate il y a une condition qui garde le focus dans le contrôle :
(if "Condition" then cancel =True) comment faire pour que l'exécution de l'évènement click du bouton s'arrête si cette condition est vrai ?