Hallo,
wenn ich im Form_Load() irgendwie feststelle, dass bestimmte Voraussetzungen für die Form nicht gegeben sind, wie kann ich denn das Laden dann abbrechen und die Form gar nicht erst erscheinen lassen?
Ich wollte eine Fehlermeldung anzeigen lassen und die Form soll nicht auftauchen.
Wenn ich im Form_Load ein this.Close() aufrufe, kommt die Exception, dass es innerhalb eines CreateHandle nicht möglich ist.
Wie geht das oder gibt es eine bessere Art sowas zu machen?
Danke,
Thomas
(Und ja, ich habe die Forumssuche benutzt, aber wahrscheinlich nicht mit den richtigen Begriffen)
Kannst du nicht schon im Konstruktor feststellen, ob die Bedingungen gegeben sind?
Vielleicht kannst du auch schon in Form.Show() deine Voraussetzungen prüfen (je nach Einsatzgebiet der Form).
Hi TeDe1408.
Soweit ich weiß, klappt das nicht.
Es wird zwar gewartet bis dein EventHandlers durch ist (sprich, du kannst eine MessageBox oder so dazwischen schieben), aber das Fenster wurde vorher schon erstellt und der Befehl zum Zeigen des Fensters wird in jedem Fall gegeben. Selbst wenn du direkt Application.Exit(); aufrufst, wird dein Fenster einmal kurz aufflackern.
Du wirst das vor dem Show-Aufruf deines Fensters überprüfen müssen, wenn du's sauber haben willst.
Grüße.
Ich habe es gerade ausgetestet (VS05/.net 2.0) und ein this.Close(); im Form_Load funktioniert ohne Probleme. Es gibt auch kein Aufflackern der Form, so wie es bei Application.Exit() der Fall ist.
Ich denke die Frage ist, warum soll die Form geschlossen werden, was ist der Grund, wenn es eine MDI-Anwendung ist, dann kann eine übergeordnete Klasse die die Fenster verwaltet (MDI-Parent?) evtl. entscheiden, ob das Form geschlossen werden kann.
Aber das kommt darauf an, was Du machen möchtest.
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.