UserControl et event Mouse [Résolu]

Signaler
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012
-
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012
-
Bonsoir,

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

Merci

reno

6 réponses

Messages postés
24
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2017

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

          RaiseEvent MouseHover(
Me, e)

End
Sub

End
Class
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012

Merci,

juste une chose pourquoi shadows

reno
Messages postés
24
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2017

Shadows permet juste de re-déclarer l'événement sans entrer en conflit avec celui qui existe déjà par défaut pour le contrôle utilisateur.



Sinon, dsl pour la mise en forme du message, je crois que j'ai toujours pas compris comment ça marche ! Mais ça viendra ...
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012

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
Messages postés
24
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
15 septembre 2017

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.
Messages postés
135
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
10 mai 2012

merci pas bête l'idée du panel transparent, je teste dés que je peux

reno