Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Anwendung beendet sich nicht
C4RL0
myCSharp.de - Member

Avatar #avatar-3444.png


Dabei seit:
Beiträge: 88
Herkunft: Osnabrück

Themenstarter:

Anwendung beendet sich nicht

beantworten | zitieren | melden

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.


                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

Application.Exit();
steht, läuft die Anwendung weiter.
Was mache ich verkehrt?
Ich habe festgestellt, dass ich mit

Environment.Exit(1);
ans Ziel komme, nur verstehe ich es nicht.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von C4RL0 am .
_____________________
Gruß
Carlo

"Palabras que no coinciden con hechos no valen nada."
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4084

beantworten | zitieren | melden

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


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.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
C4RL0
myCSharp.de - Member

Avatar #avatar-3444.png


Dabei seit:
Beiträge: 88
Herkunft: Osnabrück

Themenstarter:

beantworten | zitieren | melden

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!
_____________________
Gruß
Carlo

"Palabras que no coinciden con hechos no valen nada."
private Nachricht | Beiträge des Benutzers