www.mikrocontroller.net

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


Autor: Al (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.
 Form[] forms = new Form[Application.OpenForms.Count];
 UInt16 i=0;
 foreach (Form item in Application.OpenForms)
 {                    
     forms[i] = item;
      i++;
}  

foreach (Form form in forms)
{
   if(form.GetType() != typeof(MainForm))
             form.Close();                
} 

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?

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht 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.
this.FormClosed -= ...
Wenn die Forms aus unterschiedlichen Threads geöffnet werden, sollte 
auch noch InvokeRequired überprüft werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.