Hallo,
ich habe folgendes Problem:
- eine PicutreBox wird per Code geleert
- danach folgt ein Funktionsaufruf über eine Klasse
- die PictureBox soll je nach Rückgabewert der Klasse ein Bild anzeigen
Das funktioniert soweit alles, nur werden die Bilder erst am Ende aller
Funktionsaufrufe angezeigt und nicht nachdem eine Aktion abgeschlossen
wurde. In meiner Klasse werden diverse Dateien erzeugt und das dauert
eine gewisse Zeit. Der aktuelle Status wird bei ProgressBar angezeigt,
das Steuerelement wird von der Form mit an die Klasse übergeben und dort
werden die Werte gesetzt. Die ProgressBar wird auch korrekt dargestellt,
nur die Bilder tauchen erst später auf.
Woran liegt das? Mit Threading habe ich auch schon experimentiert - ohne
Erfolg.
Code aus meiner Form, wird über einen Button gestartet:
1 | picBoxTXT.Image = null;
|
2 | picBoxXML.Image = null;
|
3 | picBoxHTML.Image = null;
|
4 |
|
5 | if (classOutputData.vWriteTXT(pbWriteStatus, txtFolder.Text, strFileName))
|
6 | picBoxTXT.ImageLocation = Application.StartupPath + "\\img\\err.png";
|
7 | else
|
8 | picBoxTXT.ImageLocation = Application.StartupPath + "\\img\\ok.png";
|
9 |
|
10 |
|
11 | if (OutputData.vWriteXML(pbWriteStatus, txtFolder.Text, strFileName))
|
12 | picBoxXML.ImageLocation = Application.StartupPath + "\\img\\err.png";
|
13 | else
|
14 | picBoxXML.ImageLocation = Application.StartupPath + "\\img\\ok.png";
|
15 |
|
16 |
|
17 | if (OutputData.vWriteHTML(pbWriteStatus, txtFolder.Text, strFileName))
|
18 | picBoxHTML.ImageLocation = Application.StartupPath + "\\img\\err.png";
|
19 | else
|
20 | picBoxHTML.ImageLocation = Application.StartupPath + "\\img\\ok.png";
|
Auszug aus meiner Klasse:
1 | vWriteTXT(ProgressBar pbNewValue, string strPath, string strFileName)
|
2 | {
|
3 | pbValue = pbNewValue;
|
4 |
|
5 | pbValue.Minimum = 0;
|
6 |
|
7 | pbValue.Maximum = 100;
|
8 |
|
9 | // erzeuge Datei
|
10 |
|
11 | pbValue.Value = wStatus;
|
12 |
|
13 | // usw...
|
14 | wStatus++;
|
15 | }
|