UserControl et event Mouse [Résolu]

renocmoa 138 Messages postés mardi 7 septembre 2004Date d'inscription 10 mai 2012 Dernière intervention - 3 déc. 2006 à 17:58 - Dernière réponse : renocmoa 138 Messages postés mardi 7 septembre 2004Date d'inscription 10 mai 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
nbaduraux 24 Messages postés jeudi 31 mars 2005Date d'inscription 15 septembre 2017 Dernière intervention - 4 déc. 2006 à 14:36
3
Merci
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

Merci nbaduraux 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de nbaduraux
renocmoa 138 Messages postés mardi 7 septembre 2004Date d'inscription 10 mai 2012 Dernière intervention - 4 déc. 2006 à 18:35
0
Merci
Merci,

juste une chose pourquoi shadows

reno
Commenter la réponse de renocmoa
nbaduraux 24 Messages postés jeudi 31 mars 2005Date d'inscription 15 septembre 2017 Dernière intervention - 4 déc. 2006 à 18:54
0
Merci
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 ...
Commenter la réponse de nbaduraux
renocmoa 138 Messages postés mardi 7 septembre 2004Date d'inscription 10 mai 2012 Dernière intervention - 4 déc. 2006 à 18:56
0
Merci
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
Commenter la réponse de renocmoa
nbaduraux 24 Messages postés jeudi 31 mars 2005Date d'inscription 15 septembre 2017 Dernière intervention - 5 déc. 2006 à 08:40
0
Merci
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.
Commenter la réponse de nbaduraux
renocmoa 138 Messages postés mardi 7 septembre 2004Date d'inscription 10 mai 2012 Dernière intervention - 5 déc. 2006 à 12:17
0
Merci
merci pas bête l'idée du panel transparent, je teste dés que je peux

reno
Commenter la réponse de renocmoa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.