private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Wollen Sie die Anwendung wirklich beenden?", "Titel", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
e.Cancel = true;
}
Die Anwendung schliesst sich einfach, was mache ich falsch?
Beim drücken auf den Schließen-Button nicht beenden
Edit: Geht trotzdem nicht...?!
Hallo timmi,
wird der EventHandler aufgerufen? Erscheint die MessageBox?
herbivore
Eventuell liegt das daran, dass der Schließungs-Vorgang ggf trotz der Info-Box weiterläuft.
Setzt das e.Cancel an den Anfang und beende dann bei einem Druck auf ja.
Grüße, Aurion
Eventuell liegt das daran, dass der Schließungs-Vorgang ggf trotz der Info-Box weiterläuft.
Nein, es wird erst die gesammte Behandlung des Closing-Events durchgearbeitet bevor dann die tatsächliche Schließung erfolgt.
Was man überprüfen könnte ist ob dein Event noch richtig mit dem entsprechden Form verknüpft ist (mir wurde da auch mal was rausgekickt ohne das ichs gemerkt habe).
Andere Möglichkeit: Wie beendest du dein Programm? Ein Bekannter von mir hatte mal das gleiche Problem nur bei ihm lags daran das sein programm mit Process.Kill() abgeschossen wurde.
your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself
Hrm, wenn die MessageBox nicht mal erscheint vermute ich mal das herbivore den richtigen Richer hatte und der EventHandler nicht aufgerufen wird.
public Form1()
{
InitializeComponent();
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
}
void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = MessageBox.Show("Bla", "Blubb", MessageBoxButtons.YesNo) == DialogResult.No;
}
Bei
Application.ExitThread();
System.Threading.Thread.CurrentThread.Abort();
System.Diagnostics.Process.GetCurrentProcess().Close();
usw..
Wird beendet ohne die OnClose aufzurufen.. Aber wüsste grad keine Beispiele bei denen man auf diese Art sein Programm beendet - Vielleicht bei alten Anwendungen mit Excel oder Word wenn man Marshal.ReleaseComObject vergessen hatte?
Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
Denke der EventHandler fehlt in dem Abschnitt wo InitializeComponent() aufgerufen wird, werde es dann einmal ausprobieren - nur komisch, das der mir da auf einmal fehlt?! 🤔
Dankefein! 🙂