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é"
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.
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 ...