a l'interieur de mon usercontrol, j'ai des label, panel etc.
J'ai besoin qu'une action soit effectuée sur le click de mon UC sans distinction du sous-control cliqué.
J'ai donc rajouté dans le code de mon UC
public new event EventHandler Click
{
add
{
base.Click + = value;
foreach (Control control in Controls)
{
control.Click += value;
}
}
remove
{
base.Click -= value;
foreach (Control control in Controls)
{
control.Click -= value;
}
}
}
C'est cool, ça marche du tonnerre... MAIS (bah oui )
dans la methode UC_Click, j'ai un traitement selon le sender (casté par interface, bref c'est pas le sujet)
or si je click sur un sous-control de mon UC : le sender, c'est le control et non l'UC. Donc ne répond a aucune interface
Donc voila ma question : (enfin...)
Comment doit on coder ce comportement pour que le sender du click soit le UserControl et non un des controls sous-jacents.
Réponse refusée d'office : tu n'as qu'a faire ((Control)sender).Parent
j'ai déjà de la création dynamique de control dans mon UC, et je voudrai éviter de chercher des .Parent.Parent.Parent.Parent.Parent....
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 8 févr. 2013 à 17:49
Si ça pouvait être fait au niveau d'un UC ça serait top, mais ça se fait au niveau de la Form.
Au vu de la complexité de mon interface, c'est pas envisageable.
A priori ça ne marche que pour les événements clavier.