Je voudrais savoir comment obtenir que les evenements souris (leav, hover...) soit utilisable avec un user control. En effet, par exemple avec hover l'evenement ne se déclenche que lorsque la souris passe sur l'usercontrol lui même et pas sur ses controles enfants...
j'ai essayer de voir avec addhandler sur tous ses controles, mais quel addressOf la sub OnMousHover n'ayant pas la même signature et s'il contient beaucoup de controle comment faire...
Personnellement, je ne connais pas d'autre méthode que de d'implémenter l'événement souris pour chacun des controles enfants et de lui faire déclencher l'événement du controle utilisateur parent.
Pour illustrer mon propos, voici un exemple de déclenchement de l'événement MouseHover d'un controle utilisateur wucTest
comportant un label Label1
et un picturebox PictureBox1
:
Public
Class wucTest
'déclaration de l'événement souris du contrôle utilisateur parent wucTest
Public
Shadows
Event MouseHover(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
'déclenchement de l'événement du contrôle utilisateur par chaque contrôle enfant
Private
Sub Label1_MouseHover(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles Label1.MouseHover
RaiseEvent MouseHover(
Me, e)
End
Sub
Private
Sub PictureBox1_MouseHover(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles PictureBox1.MouseHover
De plus mes controle sont ajoutés par code, j'utilise donc AddHandler.
J'ai le même soucis en fait et surtout pour MouseLeave puisque l'évenement se déclenche aussi quand la souris sort de Label1 pour entrer sur PictureBox1 alors qu'elle n'est pas sortie de l'usercontrol.... donc Pb
reno
Vous n’avez pas trouvé la réponse que vous recherchez ?
C'est vrai que la gestion des événements peut devenir très compliqué, surtout s'il y a bcp de contrôles, et il faut arbitrer ...! Un autre truc qu'il m'arrive d'utiliser, si ton contrôle gère principalement de l'affichage, c'est d'ajouter un panel transparent au premier plan de ton contrôle utilisateur. Et c'est lui qui récupèrera tous les événements souris. Là c'est vraiment plus simple, mais ça dépend des fonctionnalités de ton contrôle.