Forum: PC-Programmierung Nach bestimmten Forms suchen und schließen (C#)


von Al (Gast)


Lesenswert?

Hallo zusammen,

von der MainForm starte ich eine Form1.
Von der Form1 kann ich bis 5 Forms (FormA, FormB,..FormE) starten.
Beim Schließen von Form1 möchte ich offenen Forms (von:FormA, 
FormB,..FormE) schliessen, MainForm aber nicht.
1
 Form[] forms = new Form[Application.OpenForms.Count];
2
 UInt16 i=0;
3
 foreach (Form item in Application.OpenForms)
4
 {                    
5
     forms[i] = item;
6
      i++;
7
}  
8
9
foreach (Form form in forms)
10
{
11
   if(form.GetType() != typeof(MainForm))
12
             form.Close();                
13
}

Das Schließen funktioniert leider nicht, und ich bekomme eine 
Exception:"Cannot evaluate expression because the current thread is in a 
stack overflow state"!

Was ist da falsch? wie kann ich es besser machen?

von Arc N. (arc)


Lesenswert?

Wenn das so von der MainForm ausgeführt wird, funktioniert es...
Wenn das von einer der anderen Forms ausgeführt wird, gibt's eine 
Endlosschleife, da der Eventhandler scheinbar überall dergleiche ist.
1
this.FormClosed -= ...
Wenn die Forms aus unterschiedlichen Threads geöffnet werden, sollte 
auch noch InvokeRequired überprüft werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.