Bonjour à tous,
En voici une probablement facile pour les experts que vous êtes..
Je voudrais passer en paramètres à une seconde Form la liste des CheckedItems provenant d'un CheckedListBox.
Les Items de cette CheckedListBox sont définis par un type non standard qui contient 2 strings (LbItem) comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ArrayList TagList = new ArrayList(); foreach (DataRow row in matable.Rows) { TagList.Add(new LbItem(row[0].ToString(), row[1].ToString())); } chklb_tagname.DataSource = TagList; chklb_tagname.DisplayMember = "TagName";
Dans ma seconde Form, j'ai défini un ArrayList comme suit :
Lors de l'appel de ma seconde Form, je lance ce code pour créer ma seconde Form et remplir la liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public partial class frm_graph : Form { public ArrayList tag_list = new ArrayList(); ...
cette seconde Form doit faire un foreach des items dans cette liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private void btn_externe_graph_Click(object sender, EventArgs e) { if (chklb_tagname.CheckedItems.Count > 0) { frm_graph form_graphique = new frm_graph(); //form_graphique.tag_list.AddRange(chklb_tagname.CheckedItems); foreach (LbItem Tag in chklb_tagname.CheckedItems) { form_graphique.tag_list.Add(Tag); } form_graphique.Show(); } }
mais le hic c'est que lors de l'exécution de ce foreach, j'obtiens ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 foreach (LbItem Tag in tag_list) { ... }
j'ai tenté différentes méthodes pour passer cette liste (soit en définissant mon Tag_list comme ceci : public List<LbItem> tag_list = new List<LbItem>();L'exception System.InvalidCastException n'a pas été gérée
Message="Impossible d'effectuer un cast d'un objet de type 'LbItem' en type 'LbItem'."
mais ca ne compile même pas (erreur sur la lignedans la form1, section de la création du form (voir le 3ieme extrait de code)
Code : Sélectionner tout - Visualiser dans une fenêtre à part form_graphique.tag_list.Add(Tag);
l'erreur est :
Je ne sais pas si la définition de mon type LbItem est requise pour la compréhension de mon problème, mais je le fournirai dans un second message si requis.Erreur 1 La méthode surchargée correspondant le mieux à 'System.Collections.Generic.List<WindowsApplication1.frm_graph.LbItem>.Add(WindowsApplication1.frm_graph.LbItem)' possède des arguments non valides
Merci de votre aide
Partager