Hallo Claudia,
die Instanz des Fensters muss nach einem Schließen neu angelegt werden. Im aktuellen Beispiel werden die drei Fenster im FormLoad von Form1 erzeugt. Wenn so ein Fenster dann mit Klick auf Schließen geschlossen wird ist die Instanz weg. Du müsstest also entweder das Schließen verhindern, indem Du in den Eigenschaften von Form1 die ControlBox auf false setzt, dann ist kein Schließen Button mehr da, oder aber Du prüfst vor dem Beschreiben einer Form, ob sie existiert. Falls nicht, wird sie erzeugt. Das direkte Prüfen auf Existenz ist leider nicht so einfach. Ich habe mal eine manuelle Prüfung gebastelt. Im Prototyp der Form wird eine Variable Vorhanden angelegt und im Form load mit 123, beim FormClose mit 0 belegt.
also in Form2, bei der Deklaration der Variable Verschiebung :
public int vorhanden;
Im Form2_Load
vorhanden = 123 ,
und im Form2_FormClosed
vorhanden=0;
Jetzt kannst Du im Form 1 dem Inhalt dieser Variablen abfragen, aber natürlich nur, wenn das Form schonmal angelegt wurde, deshalb jetzt on der Auswertungsroutine:
// Hier die Auswertung
switch (index)
{
case 0:
{
if ((_form2 != null) && (_form2.vorhanden == 123))
_form2.Activate();
else
{
_form2 = new Form2();
_form2.Show();
}
this._form2.label1.Text = curItem;
this._form2.Verschiebung = diff[index];
break;
}
case 1:
...
...
Die Abfrage von _form2 führt vor dem ersten Generieren der Instanz zu null, und später, auch wenn die Form geschlossen wurde zu not null. Deshalb danach noch die Abfrage nach dem Inhalt von vorhanden auf 123.
Ich habe die neue Version des Projekts auch wieder auf dem FTP-Server abgelegt.
Gruß
computerschrat
Gruß
computerschrat