[C#] Appliquer une méthode à des controls créés en cours d'execution du programm [Résolu]

Signaler
Messages postés
38
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2006
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
Salut, j'ai fais en sorte que le programme créé des controls en fonction de la demande de l'utilisateur.
Mais je voudrais qu'une fois ces controls créé (en l'occurence des comboBox), leur soit appliquer une méthode qui se lance à chaque fois qu'un utilisateur change l'index de la comboBox. Par exemple, si l'utilisateur choisit "Dupon" dans la comboBox, le programme lance alors la méthode qui recupere les données concernant Dupon dans la base de données.
J'ai créé une methode :

private
void nom_SelectedIndexChanged(
object sender, System.EventArgs e)
{
MessageBox.Show("ok");
}

Mais celle ci ne se lance que sur les comboBox qui etaient présente à l'ouverture du programme et non a celles qui ont ete créés par le choix de l'utilisateur. De plus comment savoir quelle comboBox a été utilisé ?
Quelqun peut il m'eclairer ?

5 réponses

Messages postés
38
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2006
1
c'est bon g trouvé :

ComboBox temp = (ComboBox) sender;


MessageBox.Show(temp.Name);
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Il faut que tu inscrives tes combobox créés dynamiquement a l'evenement SelectedIndexChanged et ca devrait marcher.



ComboBox monCombo = new ComboBox();

monCombo.SelectedIndexChanged += new EventHandler(nom_SelectedIndexChanged);

Mx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
ah, et pour savoir quel comboBox a été utilisé, il faut que tu castes le paramètre sender en ComboBox




private
void nom_SelectedIndexChanged(
object sender, System.EventArgs e)
{

ComboBox temp = (ComboBox) sender;
MessageBox.Show(sender.Name);
}




Mx
Messages postés
38
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2006
1
Ok ca marche merci.
Mais pour le :

ComboBox temp = (ComboBox) sender;
MessageBox.Show(sender.Name);

Je vois ce que tu veux faire mais il m'affiche une erreur sur le (sender.Name);

Je cherche, mais bon si tu trouve avant moi ! :-)
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Oui pardon, une petite erreur de ma part

Mx