Mijn probleem is alvolgt. Ik heb een button op een form en als het form geladen word word er een nieuwe Thread gestart die wat dingen in een database update.
Op het form is een ProgressBar te zien die aangeeft hoever het process al is.
Als de database update klaar is word in dezelfde method word de Show method van de button aangeroepen.
Maar de button word nooit zichtbaar. Komt dit omdat de Show method in een anderen Thread word aangeroepen dan de MainThread. Als ik de Text propertie change gaat het wel goed. Dan komt er een anderen caption op de button.
Ik heb het nog snel even getest met een simpelen code: (de Visable propertie staat op false in design time)
Dit werkt weer wel: (de Visable propertie staat op true in design time.)
En dit werkt dus ook niet. Hoe komt dit en wat is een oplossing?
Op het form is een ProgressBar te zien die aangeeft hoever het process al is.
Als de database update klaar is word in dezelfde method word de Show method van de button aangeroepen.
Maar de button word nooit zichtbaar. Komt dit omdat de Show method in een anderen Thread word aangeroepen dan de MainThread. Als ik de Text propertie change gaat het wel goed. Dan komt er een anderen caption op de button.
Ik heb het nog snel even getest met een simpelen code: (de Visable propertie staat op false in design time)
C#:
1
2
3
4
5
6
7
8
9
10
| private void Form1_Load(object sender, System.EventArgs e) { Thread t = new Thread(new ThreadStart(showButton)); t.Start(); } private void showButton() { cmdTest.Show(); } |
Dit werkt weer wel: (de Visable propertie staat op true in design time.)
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
| private void Form1_Load(object sender, System.EventArgs e) { cmdTest.Hide(); Thread t = new Thread(new ThreadStart(showButton)); t.Start(); } private void showButton() { Thread.Sleep(1000); cmdTest.Show(); } |
En dit werkt dus ook niet. Hoe komt dit en wat is een oplossing?