Hallo Community,
habe ein Problem mit dem Schließen meiner GUI.
Auf meiner GUI befindet sich ein Button der eine andere Form öffnet:
Form2 settings = new Form2();
settings.Show();
settings.Focus();
this.Hide() // Wenn ich hier .Close() verwendet stürtzt die Anwendung ab!
Nachdem ich nun auf Form2 bin und hier alles einstellen kann(speicherpfad etc.) habe ich auch hier einen Button der eine weitere Form öffnet:
Form3 db = new Form3();
db.Show();
db.Focus();
this.Hide() // Wenn ich hier .Close() verwendet stürtzt die Anwendung ab!
So nun öffnet sich auch diese Form und hier stelle ich alles ein. Nachdem ich Form3 schließe FormClosing - Event:
Form2 settings = new Form2 ();
settings .Show();
settings .Focus();
this.Hide() // Wenn ich hier .Close() verwendet stürtzt die Anwendung ab!
So nun bin ich wieder bei Form2 hier sind wieder die Optionen zu sehen. Wenn ich diesen jetzt auch schließe, FormClosing - Event:
Form1 App = new Form1 ();
App.Show();
App.Focus();
this.Hide() // Wenn ich hier .Close() verwendet stürtzt die Anwendung ab!
Nun bin ich wieder bei der Form1, hier startet die Anwendung, bis hierhin alles gut. Doch wenn ich jetzt auch diese Form schließe, FormClosing - Event:
Application.Exit(); // bei this.Close() stürtzt die Anwendung wieder ganz ab!
Kommt die Fehlermeldung:
Fehlermeldung:
Die Auflistung wurde geändert. Der Enumerationsvorgang kann möglicherweise nicht ausgeführt werden.
Diese Fehelermeldung kommt drei mal und wenn ich dann auf Beenden klicke, stürtzt die Anwendung nach den 3 Fehlermeldungen ab (Prozess muss beendet werden).
Jetzt weiß ich leider nicht woran das liegt, habe schon einwenig gesucht, doch mein Problem habe ich damit nicht lösen können.
Habe auch einige Test durchgeführt, zum Beispiel wenn ich Form2 öffnen lasse und diesen wieder schließe, ohne Form3 aufzurufen und dann Form1 schließe, Schließt sich die Application Super ( im Task-Manager ist die Anwendung nicht zu finden ). Doch sobald ich nach Form2, das Form3 öffne und Form1 schließe möchte, kommt jedesmal diese Fehelermeldung.
Ich hoffe ihr versteht mein Anliegen und könnt mir helfen.
Lg
Wenn du Form2 als Child von Form1 erstellst dann schließt sich Form2 wenn du Form1 schließt.
[FAQ] Kommunikation von 2 Forms sollte dir helfen.
Bitte beachte auch [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1
Grüße
**:::
Der Fehler sagt ja ganz klar welches Problem Du hast. (vermutlich eine Collection geändert während Du darüber iterierst).
Im VisualStudio gehst Du auf Debuggen/Ausnahmen
Dann bei Common Language Runtime Exceptions bei Ausgelöst einen Haken setzten.
Dann lässt Du Deine Anwendung wieder laufen.
Wenn die Exception ausgelöst wird, dann stehst Du auf der verursachenden Zeile (vermutlich in einem foreach).
Gruss
Programmierhans
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
[FAQ] Kommunikation von 2 Forms sollte dir helfen.
Dankeschön 😃
Lg
Edit.: In dem Post den du mir gegeben hast wird mein Thema garnicht behandelt!
@Programmierhans
habe ich getan, trotzdem kommt der fehler ^^
Danke^^
wie Programmierhans schon gesagt hat, liegt es vermutlich an einer Foreach-Schleife in der du die Collection veränderts z.B. durch .Add() oder .Remove().
Wenn du in einer Schleife die entsprechende Collection verändern willst solltest du lieber eine FOR oder WHILE-Schleife verwenden.
Ohne weiteren Code lässt sich jedenfalls nicht weiter helfen bzw. genauere Aussagen treffen. 😃
Gruß
Crone
Real programmers don't comment their code - it was hard to write, it should be hard to understand.
Hi Crone,
es ist komisch ich habe KEINE foreach schleife in meiner Anwendung habe nur eine While-Schleife, sonst habe ich keine weiteren Schleifen.
Ich verändere nur einen zustand, der mir jetzt einfällt und zwar die in Settings.
mit, Properties.Settings.Default.Save();
sonst wüsste ich nicht wo -.-
lg
Nein, es liegt am kompletten fehlen der Grundlagen.
Wenn Du im Form3 Closing event eine neue Form2 erstellst, musst du dich nicht wundern.
Bitte lies dir nochmal den link von vbprogger durch.
Auch stürtzt deine Anwendung nicht ab, sondern es ist so im Framework das wenn die erste Form geschlossen wird, geht auch die Softwar ezu.
Sind aber auch Grundlagen.
Hallo Gogeta,
vielleicht solltest du meine erste Antwort nicht einfach ignorieren sondern mal drüber nachdenken denn darin steckt die Lösung... 😃
Es drängt sich der Verdacht auf, dass hier verschiedenes verquickt wird. Ein Forum kann eine eigene und systematische Fehlersuche nicht ersetzen. Die Quelle und Ursache einer Exception sollte sich nun wirklich leicht finden und letztlich auch beheben lassen. Anschließend spielt es vermutlich gar keine Rolle mehr, dass bzw. warum der bisher fehlerhafte Code nun gerade beim Schließen von Forms angestoßen wird.
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 4 analog.