myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- Basistechnologien und allgemeine .NET-Klassen (https://www.mycsharp.de/wbb2/board.php?boardid=23)
--- Anwendung beendet sich nicht (https://www.mycsharp.de/wbb2/thread.php?threadid=122931)


Geschrieben von C4RL0 am 22.05.2020 um 12:43:
  Anwendung beendet sich nicht
Hallo zusammen,
ich starte eine Forms Anwendung wie folgt um erst mal ohne Fenster zu starten. Erst wenn gewisse Bedingungen vorherrschen, soll die Anwendung sichtbar werden, wenn nicht, mit einer Meldung geschlossen werden.

C#-Code:
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                using(FormMain formMain = new FormMain())
                    Application.Run();

Das Problem ist, dass ich die Anwendung aus der formMain heraus nicht geschlossen bekomme.
Selbst wenn im Konstruktor als erstes

C#-Code:
Application.Exit();

steht, läuft die Anwendung weiter.
Was mache ich verkehrt?
Ich habe festgestellt, dass ich mit

C#-Code:
Environment.Exit(1);

ans Ziel komme, nur verstehe ich es nicht.


Geschrieben von Th69 am 22.05.2020 um 13:10:
 
Wenn du Application.Exit() im Form-Konstruktor aufrufst, so ist das zu früh, da zu diesem Zeitpunkt ja noch nicht Application.Run() läuft (aber in Load oder Shown sollte es funktionieren sofern du die Application.Run(Form)-Überladung benutzt).

Aber warum überhaupt so?

Du kannst ja vor dem Aufruf noch beliebige Abfragen machen, d.h. in etwa so

C#-Code:
if (...)
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    using(FormMain formMain = new FormMain())
    {
        if (...)
           Application.Run(formMain);
    }
}

Und wenn du doch Application.Run nicht direkt mit der Form verknüpfen willst, dann solltest du besser die  Application.Run(ApplicationContext)-Überladung benutzen.


Geschrieben von C4RL0 am 22.05.2020 um 13:54:
 
Okay, danke für die Ausführungen.

Zitat von Th69:
Du kannst ja vor dem Aufruf noch beliebige Abfragen machen...

Damit hast Du natürlich völlig recht, irgendwie hatte ich das nicht "gesehen".
Damit läüfts prima.

Application.Run(ApplicationContext) werde ich mir mal anschauen, habe ich so noch nie verwendet.

Danke!


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 27.05.2020 18:40