2016-07-29 22 views
0

Ich habe eine Speichern Sie Schaltfläche auf meiner WinForm, die die Formularinformationen speichert und schließt dann das Formular mit der this.Close() Anweisung.Zwei verschiedene Möglichkeiten, das Formular zu bearbeiten Ereignis schließen

Es gibt jedoch eine andere Möglichkeit, das Formular zu schließen, und das ist die Schaltfläche X.

Ich verwende das Ereignis FormClosing, um eine Frage zu stellen, bevor das Formular geschlossen wird.

Die Art und Weise der Handhabung der Close-Form hängt jedoch davon ab, wie das Formular geschlossen ist. Wenn der Benutzer auf die Schaltfläche Speichern klickt, sollte das Formular ohne Frage geschlossen werden. Nur wenn der Benutzer auf die Schaltfläche X klickt, sollte die Frage gestellt werden.

Wie kann ich mein Formular wissen, was der Schließen Befehl kommt aus?

+0

Verwendung Variable "isFromSaveButton" .... –

Antwort

1

Eine einfache boolean Flag den Trick tun sollten:

private bool saveClicked = false; 
private void btnSave_click(object sender, EventArgs e) 
{ 
     saveClicked = true; 
} 
private void EmailNewsletter_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if(saveClicked) 
     return; 

    DialogResult dr = MsgBox.Show("Are you sure you want to dimiss this newsletter?", "Dismiss Newsletter", MsgBox.Buttons.YesNo, MsgBox.Icon.Question); 

    if (dr == System.Windows.Forms.DialogResult.Yes) 
    { 
     this.Newsletter = null; 
    } 
    else 
    { 
     e.Cancel = true; 
    } 
} 
+0

danke! wird in 5 Minuten als Antwort angenommen, weil ich dich hochgehoben habe! – Disasterkid