none
Formular schließen bestätigen RRS feed

  • Frage

  • Hi.

    Ich möchte, dass wenn man in meinem Programm das Formular schließt eine Messagebox kommt, die einen fragt ob man das Formular wirklich schließen will.

    Ich habe im FormClosing Ereignis folgenden Code:

     

    DialogResult dr = MessageBox.Show("Programm wirklich schließen?","Mein Programm",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
    
    if (dr == DialogResult.Yes)
    
    {
    
    Close();
    
    }
    
    else
    
    {
    
    //was muss ich hier einsetzen?
    
    }
    
    
    

    Wenn man auf NEIN klickt schließt sich das Formular trotzdem.

    Wie kann ich das verhinder, oder muss ich den Code verändern?

     


    majoba-it
    Dienstag, 4. Oktober 2011 17:06

Antworten

Alle Antworten

  • Hi,

    e.Cancel = true;

    wäre dann wohl das, was Du suchst. Zu Details siehe:

      http://msdn.microsoft.com/de-de/library/system.windows.forms.form.formclosing.aspx

    Die Abfrage kannst Du aber andersrum gestalten. Also dann, wenn nicht "Yes" geklickt wurde, wird e.Cancel = true; aufgerufen, ansonsten musst Du nichts explizit machen, da das Formular ja eh bereits geschlossen werden soll. Der Aufruf von Close ist daher unnötig, es sei denn, Du willst dort noch was erledigen, bevor das Formular geschlossen wird.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort vorgeschlagen Elmar BoyeEditor Dienstag, 4. Oktober 2011 19:55
    • Als Antwort markiert majoba-it Mittwoch, 5. Oktober 2011 08:06
    Dienstag, 4. Oktober 2011 17:39
    Moderator
  • Nebenbei darfst du gar nicht im FormClosing-Ereignis die Close(); Methode aufrufen, weil diese wiederum für den Aufruf des Form-Closing-Ereignisses sorgt - du hast eine Endlosschleife erzeugt.
    Ich gehe mal davon aus, dass du das nicht wolltest ;)

    LG, Jaytar

    Freitag, 15. Februar 2013 12:45