Bouton par défaut

cs_med_ali Messages postés 23 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 2 avril 2011 - 19 juin 2009 à 22:24
cs_med_ali Messages postés 23 Date d'inscription vendredi 18 mars 2005 Statut Membre Derniè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

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 juin 2009 à 00:19
Salut
Essaye en faisant un 
   Call monBouton_Click
dans le TextBox_KeyPress ou le ComboBox_KeyPress avec un test de la touche vbKeyEnter (de mémoire)

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)
0
cs_med_ali Messages postés 23 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 2 avril 2011
20 juin 2009 à 01:02
bonjour
j'ai déjà essayé mais ca n'a pas marché il ne passe jamais par ces deux procédure mais si je teste la touche frappée tel que la touche Entrer
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_med_ali Messages postés 23 Date d'inscription vendredi 18 mars 2005 Statut Membre Derniè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()
0

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

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
20 juin 2009 à 23:16
Bonjour,

Mets ceci en 1ère ligne de l'évènement click de ton bouton de commande ....(en remplaçant "Text1" par le nom que tu as donné à ta textbox

If ActiveControl.Name = "Text1" Then Text1_LostFocus

(Et en espérant que tu développes bien sous VB6 et non VBA/Excel ...)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_med_ali Messages postés 23 Date d'inscription vendredi 18 mars 2005 Statut Membre Derniè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!
0
cs_med_ali Messages postés 23 Date d'inscription vendredi 18 mars 2005 Statut Membre Derniè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 ?
0
Rejoignez-nous