Hallo nochmal,
du solltest in der Tat die Abfrage nicht im Konstruktor ablaufen lassen, generell sollte man keine intensiveren Operationen externer Komponenten innerhalb eines Klassen-Konstruktors ablaufen lassen. Ein Grund ist, dass zu dem Zeitpunkt die Klasse auch noch nicht wirklich existiert. Z.b. werden Events noch nicht registriert.
Der .Load Event ist für soetwas besser geeignet.
Darüber hinaus brauchst du Application.Run nicht mit einem "new MyForm" füttern, du kannst auch eine fertig aufgebautes Formular nehmen und unzählig viel vor dem System.Windows.Forms.Application.Run() durchführen, wie eben Sicherheitschecks ...
In deinem Fall soll sich die "Application" in der Durchführung ihrer .Run Methode auch gleich wieder mittels .Exit beenden. Ich denke, dass da der Hase bei dir im Pfeffer liegt.
<quote from msdn>
Application.Exit: Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.
</quote>
Ich stelle gerade fest, dass ich mich hinsichtlich einer Sache geirrt hatte, Application.Exit schliesst zwar alle Fenster, aber die Events .Closing und .Closed werden dabei nicht ausgelöst.
Grüße, Frank