Bonjour,
Je souhaiterai pouvoir modifier des composants (checkbox...) d'une fenêtre à partir d'un thread. Cependant, je ne sais pas lancer une fenêtre non modale depuis un thread. Pour le moment, la nouvelle fenêtre est blanche et finie par planter.
J'ai déjà essayé avec la méthode Invoke :
Mais le problème est que cette méthode ne connait que la dernière fenêtre qui a été crée, et par conséquent modifie uniquement les contrôles de la dernière fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Form2.copieDeSelection.Invoke(new MethodInvoker(delegate() { Form2.copieDeSelection.Checked = false; }));
J'ai un code quasiment identique à celui-ci
Comment s'y prendre pour avoir accès à une fenêtre et ses composants depuis un thread crée par une autre classe ?
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 public partial class Form1 : Form { private Thread tache; private static bool arretThread = false; public static Form2[] tabFen2 = null; public Form1() { InitializeComponent(); tabFen2 = new Form2[3]; for (int i = 0; i < 3; i++) { tabFen2[i] = new Form2(); } tache = new Thread(new ThreadStart(chercherComposantsModifies)); tache.Priority = ThreadPriority.Highest; tache.Start(); } private void chercherComposantsModifies() { tabFen2[0].Show(); ??????? while (!arretThread) { Thread.Sleep(250); } } }
Merci d'avance pour vos explications
Partager