Bonsoir,
J'ai plusieurs formulaires et j'aimerais créer, dans une classe à part une procédure pour automatiser la création de checkbox dans un contrôle de type panel. Pour l'instant ça marche
La classe (dans le code, j'ai enlevé tout ce qui était positionnement,...):
1 2 3 4 5 6 7 8 9 10 11 12 13
| class ClsUtilitaire
{
public static void AjoutCheckBox(Int16 nb, Panel UnPanel, Form uneForme, String UnPrefixe)
{
for (Int16 i = 0; i < nb; i++)
{
CheckBox UneCheckBox=new CheckBox();
UneCheckBox.Name=UnPrefixe+i.ToString();
UnPanel.Controls.Add(UneCheckBox);
}
}
} |
l'appel depuis un formulaire :
1 2 3 4 5 6 7 8 9 10 11 12
| public partial class FrmTest : Form
{
public FrmTest()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ClsUtilitaire.AjoutCheckBox(5, panel1, this, "Essai_");
}
} |
Tout va bien.
Par contre j'aimerais créer un eventHandler sur l'événement CheckedChanged.
Là j'ai 2 soucis :
Souci 1 : je n'arrive pas à caster le paramètre UneForme dans la classe du formulaire qui appelle la méthode AjoutCheckBox, et je suis obligé de déclarer le paramètre de type Form car la demande peut venir de plusieurs formulaires différents.
Souci 2 : comment faire passer le nom de la méthode dans le paramètre de eventhandler ?
UneCheckBox.CheckedChanged += new System.EventHandler(???)
J'avais pensé créer la même méthode dans chaque classe Form, mais comme j'ai plusieurs panel qui peuvent accueillir des checkboxes, le souci 2 reste entier.
ma question est donc, comment construire le paramètre à passer au constructeur du EventHandler ? ???
En espérant avoir été clair,
merci pour vos réponses
Partager