myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Basistechnologien und allgemeine .NET-Klassen » Anwendung beendet sich nicht
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Anwendung beendet sich nicht

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
C4RL0
myCSharp.de-Mitglied

avatar-3444.png


Dabei seit: 01.06.2012
Beiträge: 80
Entwicklungsumgebung: VS 2015
Herkunft: Osnabrück


C4RL0 ist online

Anwendung beendet sich nicht

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von C4RL0 am 22.05.2020 13:01.

22.05.2020 12:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.578
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Th69 am 22.05.2020 13:12.

22.05.2020 13:10 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
C4RL0
myCSharp.de-Mitglied

avatar-3444.png


Dabei seit: 01.06.2012
Beiträge: 80
Entwicklungsumgebung: VS 2015
Herkunft: Osnabrück

Themenstarter Thema begonnen von C4RL0

C4RL0 ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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!
22.05.2020 13:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


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