Nach bestimmten Forms suchen und schließen (C#)

Gast #2025421
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?
#2025563
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren