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
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...
Application.Exit() hatte ich vor einer weile auch schon mal - ging auch nicht
Wann genau wird denn GUI_Load() aufgerufen ?
Hallo belbono,
siehe Form.Load in der SDK-/MSDN-Doku.
herbivore
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...
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!?
Original von Programmierhans
Original von kleines_eichhoernchen
oder probier mal Application.ExitAlso 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...
lol
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
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
Original von Programmierhans
Original von kleines_eichhoernchen
oder probier mal Application.ExitAlso 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.
Echte Programmierer benutzen Process.Kill(). 😉
Und Götter verwenden ExitWindows 8)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
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...
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...
Wohl eher nicht...🙂
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...