Renvoyer un évènement vers un controle utilisateur parent [Résolu]

Messages postés
171
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
14 novembre 2019
- - Dernière réponse : Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
- 8 mai 2019 à 19:10
Bonjour,

J'ai développé un contrôle utilisateur (A) comprenant plusieurs contrôles.
Ce contrôle est destiné (naturellement) à être intégré lui-même dans un contrôle conteneur (B).

Je souhaiterais que le clic sur n'importe lequel des contrôles contenus dans A soit transmis à l'évènement Click de ce dernier, sans avoir à développer un évènement spécifique.
En clair, dans le contrôle B, je souhaiterais que le gestionnaire A_Click reçoive le clic de n'importe lequel des objets de A, avec A dans l'objet sender, comme si on avait cliqué sur le contrôle lui-même.

En fait, il est peu important de savoir ce qui a été cliqué dans A, seul importe le fait de savoir qu'on a cliqué, et quel est le contrôle A sur lequel il a été cliqué (il y a plusieurs dizaines de contrôles A dans B). Après, je traite les propriétés de A.

Idem pour KeyDown et KeyPress (je n'ai pas trouvé de KeyPreview pour les contrôles utilisateurs, comme on a dans les Forms).

J'espère avoir été clair...
Afficher la suite 

2 réponses

Messages postés
171
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
14 novembre 2019
0
Merci
Un peu plus tard...

J'ai essayé la chose suivante : Dans A :

Form1_Load
{
    foreach (Control Ctrl in this.Controls)
        Ctrl.Click += new EventHandler(OnCtrlClick);
}
//-------------------------------------------------------------------------------------------------------------
private void OnCtrlClick(object sender, EventArgs e)
{
    this.OnClick(e);
}

et dans B (UC est une instance de A) :

private void UC_Click(object sender, EventArgs e)
{
    MessageBox.Show("Clic !");
}


Ça fonctionne très bien !
Comme quoi poser un problème par écrit et le décrire complètement faire réfléchir un peu plus et peut aider à le résoudre "tout seul soi-même".

Mais si ça peut servir à quelqu'un d'autre...
Commenter la réponse de MGD Software
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 décembre 2019
322
0
Merci
Salut, si j’avais vu ta question avant que tu y répondes toi-même, c’est exactement ce que je t’aurais proposé
Commenter la réponse de Whismeril