LostFocus sur textbox et Scroll sur listBox !!! [Résolu]

Signaler
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonnour à tous.

J'ai un (petit?) problème.

J'ai un TextBox à 10 éléments (de  1 à 10), appelé "txtNom(index)"
J'ai aussi une ListBox, appelée "lstFamille"

Petite précision qui a pourtant son importance :
lors de chaque défilement de la lstFamille,
toutes les valeurs des txtNoms(1 à 10)
à l'intérieur de la "frmUtilPoste" changent !

Lorsque je clique sur ma ListBox,
l'événement "txtNom_LostFocus (index)" ne se génère pas...
c'est "lstFamille_Scroll()",
qui prend d'abord l'exécution, ne permettant pas de passer
par "txtNom_LostFocus (index)".

Je n'arrive pas à forcer cela...
Car si je provoque "txtNom_LostFocus(xxx)",
c'est le scroll de la lstFamille qui n'est pas généré"

Qui va pouvoir m'aider?

yd

6 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour, CPT.


Ben oui (mal réveillé, moi, ce matin...)

Précision pour jytest :


 


Dans les deux cas de figure, fais attention !


Car l'évènement Scroll se déclenche également si tu modifies la propriété TopIndex de la listbox ===>> déclenchement subséquent de l'évènement LostFocus de la TextBox (bien évidemment)


Si tu modifies donc quelque part la propriété TopIndex mais ne veux pas que, dans un tel cas, l'évènement LostFocus de la textbox se déclenche, il va te falloir utiliser une variable booléenne générale, pour agir selon son état.


 


 
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
tu dois avoir un autre bout de code quelque part, j'ai testé le code avant de poster et çà fonctionne bien...

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014

J'ai même essayé "txtNom_Validate (index)"
Mais cela ne fonctionne pas non plus!

Que faire, svp !

Merci d'avance pour votre aide.

jyd
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,

C'est tout-à fait normal, puisque le scroll (au contraire du Click) de la listbox ne donne pas pour autant le focus à la listbox et que, donc, textbox ne perd pas ainsi son focus (en scrollant la listbox) ! ...
Si tu y tiens tant, tu peux faire ainsi :

Exemple :

Private Sub Form_Load()
 For i = 1 To 40
   List1.AddItem i
 Next
End Sub



Private Sub List1_Scroll()
  Text1_LostFocus (List1.Tag)
End Sub



Private Sub Text1_GotFocus(Index As Integer)
  List1.Tag = Index
End Sub



Private Sub Text1_LostFocus(Index As Integer)
 MsgBox "oui"
End Sub

Il va de soi que tu peux utiliser une variable générale à la place de la pripriété tag, si cette dernière t'est par ailleurs nécessaire, hein ...
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
salut à tous,

plus simplement ajouter lstFamille.SetFocus en début de ta procédure lstFamille_Scoll devrait suffir

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014

C'est bien ce que je me disais...
Il faut programmer cet événement... exceptionnel...

Merci à tous.
Par contre lstFamille.SetFocus ne résoud pas le souci.

jyd