Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

déclenchement intempestif de l'évènement click

7 réponses
Avatar
thierry
hello,

J'ai mis un contrôle box sur mon Form. Puis, une fois qu'il est chargé
je lis toutes les lignes grâce à une boucle Tant Que. Le prôblème, c'est
qu'a chaque lecture d'une ligne, l'évènement click est activé. Comme
j'ai du code dans le corps de cet évènement, ce code s'execute alors que
je ne le souhaite pas.

Avez vous une idée pour empêcher le déclechement de cet évènement
lorsque je lis chaque ligne?

Cdt

Thierry

7 réponses

Avatar
ng
SAlut

Qu'appelles tu un "controle box" ?
Peut on voir ton code ? Ca serait plus facile.

Sinon a première vu je dirais qu'il faudrait que tu utilises un flag booléan
pour éviter d'éxecuter le code de l'event click à chaque fois.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

thierry wrote:
hello,

J'ai mis un contrôle box sur mon Form. Puis, une fois qu'il est chargé
je lis toutes les lignes grâce à une boucle Tant Que. Le prôblème,
c'est qu'a chaque lecture d'une ligne, l'évènement click est activé.
Comme j'ai du code dans le corps de cet évènement, ce code s'execute
alors que je ne le souhaite pas.

Avez vous une idée pour empêcher le déclechement de cet évènement
lorsque je lis chaque ligne?

Cdt

Thierry


Avatar
thierry
In article ,
says...
SAlut

Qu'appelles tu un "controle box" ?
Peut on voir ton code ? Ca serait plus facile.

Sinon a première vu je dirais qu'il faudrait que tu utilises un flag booléan
pour éviter d'éxecuter le code de l'event click à chaque fois.




j'ai dis une grosse bêtise très digne de moi.

En fait c'est un contrôle ListBox.....


Désolé, mais je vais essayer le coup du boolean
Avatar
Guy DETIENNE
Salut ;O)

C'est étrange, je n'ai pas ce comportement avec le code ci-dessous :


Private Sub Command1_Click()

Dim i As Long
Dim str As String

For i = 0 To 99
str = str & Me.List1.List(Me.List1.ListIndex)
Next i

End Sub

Private Sub Form_Load()

Dim i As Long

For i = 1 To 1000
Me.List1.AddItem "toto" & i
Next i

End Sub

Private Sub List1_Click()
MsgBox "click"
End Sub

Peux-tu nous faire voir ton code qui lit les données ?

Guy
"thierry" a écrit dans le message de
news:
hello,

J'ai mis un contrôle box sur mon Form. Puis, une fois qu'il est chargé
je lis toutes les lignes grâce à une boucle Tant Que. Le prôblème, c'est
qu'a chaque lecture d'une ligne, l'évènement click est activé. Comme
j'ai du code dans le corps de cet évènement, ce code s'execute alors que
je ne le souhaite pas.

Avez vous une idée pour empêcher le déclechement de cet évènement
lorsque je lis chaque ligne?

Cdt

Thierry


Avatar
thierry
In article ,
says...
Salut ;O)

C'est étrange, je n'ai pas ce comportement avec le code ci-dessous :


Private Sub Command1_Click()

Dim i As Long
Dim str As String

For i = 0 To 99
str = str & Me.List1.List(Me.List1.ListIndex)
Next i

End Sub

Private Sub Form_Load()

Dim i As Long

For i = 1 To 1000
Me.List1.AddItem "toto" & i
Next i

End Sub

Private Sub List1_Click()
MsgBox "click"
End Sub

Peux-tu nous faire voir ton code qui lit les données ?

Guy
"thierry" a écrit dans le message de
news:
> hello,
>
> J'ai mis un contrôle box sur mon Form. Puis, une fois qu'il est chargé
> je lis toutes les lignes grâce à une boucle Tant Que. Le prôblème, c'est
> qu'a chaque lecture d'une ligne, l'évènement click est activé. Comme
> j'ai du code dans le corps de cet évènement, ce code s'execute alors que
> je ne le souhaite pas.
>
> Avez vous une idée pour empêcher le déclechement de cet évènement
> lorsque je lis chaque ligne?
>
> Cdt
>
> Thierry




voici mon code qui je l'espère ne vous fera pas trop rire (sniff...)

j'ai deux contrôle list. Dans le premier(list1), il y a une quantité
assez longue de lignes. l'utilisateur sélectionne quelques lignes en
faisant un click desssus. Ceci les copis dans ma deuxième liste(liste2).
Si on fait 1 click dans la liste2, cela va les enlever de ce contrôle.

une fois que l'utilisateur à valider les lignes choisies, je les prends
une à une et je récupère le texte entre la début de la ligne et le
premier caractère | trouvé. Comme c'est obligatoirement un nombre, je
fais une convertion.



For index_tab = 0 To List2.ListCount - 1

List2.ListIndex = index_tab
phrase = List2.Text

position = InStr(1, phrase, "|")
phrase = Left(phrase, position - 1)

num_dossier = CLng(phrase)

traitement

next


Une idée?
Avatar
TouTi
voila la correction

For index_tab = 0 To List2.ListCount - 1
phrase = list2.List(index_tab)
position = InStr(1, phrase, "|")
num_dossier = CLng(Left(phrase, position - 1))

traitement

Next index_tab
Avatar
thierry
In article <422c7f0f$0$3143$, gelapplication
[Nospam]@tiscali.fr says...
voila la correction

For index_tab = 0 To List2.ListCount - 1
phrase = list2.List(index_tab)
position = InStr(1, phrase, "|")
num_dossier = CLng(Left(phrase, position - 1))

traitement

Next index_tab






ok, merci j'essaye de comprendre le pourquoi de la chose...
Avatar
TouTi
> ok, merci j'essaye de comprendre le pourquoi de la chose...


Si je peux t'aider à mieux comprendre le problème, c'est que tu
sélectionnais toutes les lignes et non leur lecture à cause de l'utilisation
de la ligne de commande : List2.ListIndex = index_tab : L'événement Change
se déclanchait alors à chaque itération de la boucle for.

La lecture se fait donc par la commande list2.List(index_tab)


GuY