tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
173
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Zaubermaus84 Tutorials.de Gastzugang
    Huhu,

    ich habe eine Program welches, wenn es vom Nutzer beendet wird, prüft ob Änderungen vorgenommen wurden und nicht gespeichert wurde. Wenn dem so ist soll ein Fensterchen erscheinen welches nachfragt ob noch gespeichert werden soll.
    Mögliche Buttons wären dann:

    Ja (dann wird gespeichert und das Programm beendet)
    Nein (dann wird einfach beendet)
    Abbrechen (es wird nicht gespeichert und das ClosingEvent abgebrochen)

    Mein Problem ist jetzt das wenn ich im ClosingEvent eine neue Form aufmache (eben diese die nachfrägt) sich das Programm dennoch sofort beendet, weil es eben nur die neue Form anzeigt, dann aber nicht wartet. Das Programm müsste an dieser Stelle aber warten bis der Nutzer auf dem 2ten Form etwas gedrückt hat, die Aktion ausgeführt wurde und sich dann beenden.

    Geht sowas nur mit Threads oder gibt es da auch andere Möglichkeiten ?
     

  2. #2
    Avatar von Turri
    Turri Turri ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Hallo,

    ich würde dir eine einfache MessageBox für dein Problem empfehlen.
    Die öffnet sich auch Modal, so das das Programm wartet welches Ergebnis sie liefert.

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                DialogResult res = MessageBox.Show("Daten speichern vor dem Beenden?", "Speichern?", MessageBoxButtons.YesNoCancel);
                if (res == DialogResult.Cancel)
                {
                    // Abbrechen (es wird nicht gespeichert und das ClosingEvent abgebrochen)
                    e.Cancel = true;
                }
                else if (res == DialogResult.Yes)
                {
                    // Ja (dann wird gespeichert und das Programm beendet)
                }
                else if (res == DialogResult.No)
                {
                    // Nein (dann wird einfach beendet)
                }
            }

    Du kannst deine 2. Form auch als Dialog anzeigen lassen, so dass das Hauptfenster auch gesperrt bleibt.
    Code csharp:
    1
    
    form2.ShowDialog();
    Geändert von Turri (09.06.10 um 12:48 Uhr)
     
    MfG Turri

    PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)

  3. #3
    Zaubermaus84 Tutorials.de Gastzugang
    Ah supi, danke, ich wusste nicht das man Messageboxen auch Buttons zufügen kann, werd die Möglichkeiten gleich mal versuchen.
     

Ähnliche Themen

  1. C# ClosingEvent - Programm lässt sich nicht autom. beenden
    Von Skiron im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 18.11.05, 09:37