Salut à tous,
Alors depuis quelques heures je stagne sur un problème qui est normalement pas méchant. Alors je vais essayer de vous l'expliquer d'une manière clair pour que vous puissiez m'aider , je vais faire un exemple simplifier de mon problème.
Alors l'énoncer le voici :
- J'ai une Form, du nom de form1, dans cette Form, j'ai une checkedListBox.
- J'ai une Class, du nom de class2 dans laquelle se trouve à un certain moment une List destiné à la checkedListBox.
Donc en gros. Ma form1 lance une procédure qui aboutit par l'appel d'une méthode qui se trouve dans class2. Cette méthode aura en sa possession une List. Et j'aimerai bien envoyer cette List à la form1 pour que je puisse remplir la checkedListBox.
Mais, oui il y a un mais, la contrainte c'est que c'est asynchrone. La List est prête n'importe quand donc. Mettre la List en variable global, ou la faire passer via Settings etc ne peut pas fonctionner.
Mon idée c'était de crée une méthode dans la form1 qui permet de changer la checkedListBox et cette même méthode serait appelé par la méthode qui reçoit la List dans la class2, mais ça aussi ne fonctionne pas, parce que pour appeler la méthode de form1 à partir de class2 je dois crée une instance et l'appeler par la suite, et donc si j'ai bien compris la checkedListBox crée a partir de class2 n'est pas la même que l'original
Je sais que l'explication que j'ai donné est un peu tordu mais j'ai du mal à décrire le problème.
Voici l'exemple :
Form:
class2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void SetListBox(string ite) { checkedListBox1.Items.Add(ite); } private void button1_Click(object sender, EventArgs e) { class2 test = new class2(); test.callForm1(); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class class2 { public void callForm1() { Form1 form1 = new Form1(); form1.SetListBox("checkBox1"); } } }
Voilàa si quelqu'un pouvait me mettre sur une piste je lui en serai reconnaissant.
Merci d'avance
Partager