OVH Cloud OVH Cloud

Click souris ou click programme ?

2 réponses
Avatar
Simon Neuretvenu
Bonjour,

Y a t'il un moyen simple de savoir si un événement click sur un chekbox est
déclenché par un click souris ou par programme en modifiant la propriété
value?

merci

2 réponses

Avatar
Zoury
Salut Simon! :O)

Modifier la valeur par le code déclenche l'événement Click à tous les
coups... et ce même si on utiliser un SendMessage() avec BM_SETCHECK.

Il faut donc employé un flag ou un truc du genre ..

voici un exemple posté par Ken Halter :
'***
Option Explicit

Private Sub Form_Load()
Check1.Value = vbChecked
End Sub

Private Sub Check1_KeyDown(KeyCode As Integer, Shift As Integer)
Check1.Tag = "Key"
End Sub

Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Check1.Tag = "Mouse"
End Sub

Private Sub Check1_Click()
If Check1.Tag = "" Then
MsgBox "Code caused it to fire"
Else
MsgBox "User used " & Check1.Tag
End If
Check1.Tag = ""
End Sub
'***


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Simon Neuretvenu" a écrit dans le
message de news:cdjg07$3ek$
Bonjour,

Y a t'il un moyen simple de savoir si un événement click sur un chekbox


est
déclenché par un click souris ou par programme en modifiant la propriété
value?

merci




Avatar
Simon Neuretvenu
Merci Yanick
C'est exactement l'info dont j'avais besoin.

"Zoury" a écrit dans le message de news:

Salut Simon! :O)

Modifier la valeur par le code déclenche l'événement Click à tous les
coups... et ce même si on utiliser un SendMessage() avec BM_SETCHECK.

Il faut donc employé un flag ou un truc du genre ..

voici un exemple posté par Ken Halter :
'***
Option Explicit

Private Sub Form_Load()
Check1.Value = vbChecked
End Sub

Private Sub Check1_KeyDown(KeyCode As Integer, Shift As Integer)
Check1.Tag = "Key"
End Sub

Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Check1.Tag = "Mouse"
End Sub

Private Sub Check1_Click()
If Check1.Tag = "" Then
MsgBox "Code caused it to fire"
Else
MsgBox "User used " & Check1.Tag
End If
Check1.Tag = ""
End Sub
'***


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Simon Neuretvenu" a écrit dans le
message de news:cdjg07$3ek$
> Bonjour,
>
> Y a t'il un moyen simple de savoir si un événement click sur un chekbox
est
> déclenché par un click souris ou par programme en modifiant la propriété
> value?
>
> merci
>
>