C#: Beenden von Anwendung verhindern?

lordfritte

Erfahrenes Mitglied
Hallo ich habe eine Windowsanwendung in C#, lässt sich da beim Schließen der Anwendung eine Abfrage einbauen? Es soll beim Schließen eine MessageBox mit einer Abfrage erscheint ob man die Anwendung wirklich beenden möchte, wenn Ja: wind die Anwendung geschlossen, wenn Nein, wird die Anwendung nicht geschlossen.
 
Dafür musst du das FormClosing Event abfangen. Bau dann eine MessageBox mit der typischen Abfrage "Wollen Sie wirklich schließen?" ein, dabei fragst du auch gleich ab ob der User Nein gedrückt hat. Und in diesem If Statement machst du "e.Cancel = true" damit verhinderst du dass das Fenster geschlossen wird.
 
Ja habe ich:
PHP:
private void mainWindow_Close(object sender, System.ComponentModel.CancelEventArgs e)
        {
            // Display a MsgBox asking the user to save changes or abort.
            if (MessageBox.Show("Wollen Sie das Programm beenden?", "My Application", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                // Cancel the Closing event from closing the form.
                e.Cancel = true;
            }
        }

passiert aber nichts, das Programm geht einfach aus.

Mit mainWindow_Closing() habe ich es versucht.
 
Du hast es falsch umgesetzt:

Code:
private void mainWindow_FormClosing(object sender, FormClosingEventArgs e)
{
  if (MessageBox.Show("Wollen Sie wirklich die Anwendung schließen?", "Dein Programm",
    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  {
    e.Cancel = true;
  }
}

So sollte es aussehen.
 
Ich weiß ja nicht was du da anstellst, aber es funktioniert wunderbar. Schau mal unter deinem mainWindow.Designer.cs nach ob das Event richtig registriert wird:

Code:
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.mainWindow_FormClosing);
 

Neue Beiträge

Zurück