UserControl et event Mouse

Résolu
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012 - 3 déc. 2006 à 17:58
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012 - 5 déc. 2006 à 12:17
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

nbaduraux Messages postés 24 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 15 septembre 2017
4 déc. 2006 à 14:36
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
3
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
4 déc. 2006 à 18:35
Merci,

juste une chose pourquoi shadows

reno
0
nbaduraux Messages postés 24 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 15 septembre 2017
4 déc. 2006 à 18:54
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 ...
0
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
4 déc. 2006 à 18:56
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nbaduraux Messages postés 24 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 15 septembre 2017
5 déc. 2006 à 08:40
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.
0
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
5 déc. 2006 à 12:17
merci pas bête l'idée du panel transparent, je teste dés que je peux

reno
0
Rejoignez-nous