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
Programm beenden erzwingen
belbono
myCSharp.de - Member



Dabei seit:
Beiträge: 25

Themenstarter:

Programm beenden erzwingen

beantworten | zitieren | melden

Hallo,

bei Programmstart prüfe ich im Konstruktor meiner GUI die Verbindung zur Datenbank. Wenn diese fehlschlägt will ich das Programm sofort beenden.

Leider hab ich das bisher irgendwie nicht hinbekommen und ich irgendwie auch im Netz nichts in der Richtung "Programmende erzwingen"

this.close() funktioniert seltsamerweise nicht .... als direkter Funktionsaufruf per Button aus der GUI heraus allerdings schon...

Ich glaub ich hab da etwas noch nicht so ganz verstanden...

Im Moment setzt der Konstruktor lediglisch seine Arbeit fort...was er aber in dem Fall nicht soll.

Hat jemand eine Idee ?

Gruß,
belbono
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

Im Konstruktor kannst du nicht this.Close() einer Form aufrufen. Frachte alles in Form_Load, dann sollte es gehen oder probier mal Application.Exit
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers
belbono
myCSharp.de - Member



Dabei seit:
Beiträge: 25

Themenstarter:

beantworten | zitieren | melden

Application.Exit() hatte ich vor einer weile auch schon mal - ging auch nicht

Wann genau wird denn GUI_Load() aufgerufen ?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo belbono,

siehe Form.Load in der SDK-/MSDN-Doku.

herbivore
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Zitat
Original von kleines_eichhoernchen
oder probier mal Application.Exit

Also mit dem kleinen Holzhämmerchen.... Es gibt da auch noch den grossen Holzhammer ... Environment.Exit

Aber nicht dass jetzt jemand daraus schliesst ich fände es eine gute Idee Anwendungen mit dem Hammer zu schliessen. 8)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8.746
Herkunft: Berlin

beantworten | zitieren | melden

Im Konstruktor hat so ein Code nix zu suchen. Wie Herbi schon schrieb, solltest du diesen Code z.B. in Form.Load() unterbringen. Wenn du dann Close() absetzt, geht das Fenster zu und die Anwendung beendet.

Etwas "erzwingen" bedeutet immer: Ich habs auf regulären Weg nicht hinbekommen. Und wer will schon pfuschen!?
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

Zitat
Original von Programmierhans
Zitat
Original von kleines_eichhoernchen
oder probier mal Application.Exit

Also mit dem kleinen Holzhämmerchen.... Es gibt da auch noch den grossen Holzhammer ... Environment.Exit

Aber nicht dass jetzt jemand daraus schliesst ich fände es eine gute Idee Anwendungen mit dem Hammer zu schliessen. 8)

Und ich schätze der ganz ganz große Hammer, ist der Kopf am Rechner mit der Aufschrift "R.E.S.E.T.".
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

lol
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
belbono
myCSharp.de - Member



Dabei seit:
Beiträge: 25

Themenstarter:

beantworten | zitieren | melden

hehe - gibts dafür eigentlich auch eine Funktion in .NET ? Windows muss ja welche kennen, wenn ich mich so erinner was hier manchmal so passiert...


Gut, aber der Riesenhammer wäre in dem Fall auch ne gültige Alternative...

Weil das Prog hier ohne die Datenbank nichts kann .... und da macht nur noch ein beenden Sinn.

Ich habe das jetzt so gelöst, dass ich die bool'sche Variable global in der GUI hab und sie im Konstruktor setze.

In GUI_Load frag ich sie ab und rufe dann ggf. this.Close() auf.
Funktioniert genau so wie ich es mir vorgestellt habe!

Danke für die Infos!!


belbono
private Nachricht | Beiträge des Benutzers
DarKlajid
myCSharp.de - Member



Dabei seit:
Beiträge: 386
Herkunft: Köln

beantworten | zitieren | melden

Zitat
Original von Programmierhans
Zitat
Original von kleines_eichhoernchen
oder probier mal Application.Exit

Also mit dem kleinen Holzhämmerchen.... Es gibt da auch noch den grossen Holzhammer ... Environment.Exit

Aber nicht dass jetzt jemand daraus schliesst ich fände es eine gute Idee Anwendungen mit dem Hammer zu schliessen. 8)

Environment.Exit ist was fuer Bluemchenkinder.
Environment.FailFast() ist das richtige Werkzeug..
Pound for pound, plutonium is about as toxic as caffeine when eaten.
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8.746
Herkunft: Berlin

beantworten | zitieren | melden

Echte Programmierer benutzen Process.Kill().
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Und Götter verwenden ExitWindows 8)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

ich weiß, gehört hier nicht ganz zum Thema, aber

Gibt es eigentlich im Dot.Net eine Möglichkeit Windows heruntezufahren, Standby, Ruhezustand, Neustart usw. ohne externe DLLImporte wie ExitWindows(Ex) zu benutzen? WMI vllt.?
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Shutdown auf ne Shell rausstellen... aber das hast Du sicher nicht gemeint :-)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

Wohl eher nicht...:-)
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers