Έχω μια εφαρμογή όπου έχει και σε Menu bar όπου ο χρήστης μπορεί να επιλέξει Exit (έξοδος απο την εφαρμογή) και απλά να κλείσει την εφαρμογή επιλέγοντας το close button των windows. Θέλω κάθε φορά πριν κλείσει η εφαρμογή να βγαίνει ένα πληροφοριακό μύνημα που απλά να λέει "Εξοδος απο την εφαρμογή" και να έχει δυο button ένα επιβεβαίωση και ένα ακυρο.Λοιπόν τα έχω κάνει όλα αυτά και στο OnFormClosing εκτελώ τα παρακάτω...:
΅ try
{
DialogResult dr = MessageBox.Show("Έξοδος από την εφαρμογή;", "Επιβεβαίωση", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
Application.Exit();
return true;
}
else
return false;
}
catch (Exception ex)
{
MessageBox.Show("Σφάλμα κατά το κλείσιμο της εφαρμογής :" + ex.Message);
return false;
}
Το παραπάνω είναι μέσα σε μια class on_exit_class πχ και είναι static method. Το πρόβλημα μου είναι πως αν θέλω να κλεισω την εφαρμογή και πατώ επιβεβαίωση τότε εμφανίζεται δύο φορές το MessageBox και αυτό γιατί
1) Καλείτε μία στο OnClosing
2) Ξανα μπαίνει στο event μόλις παει να εκτελέσει το Application.Exit()
Λέω να βάλω boolean μεταβλητές και να λύσω πρόχειρα το πρόβλημα .... αλλά θα θελα μια πίο safe και common λύση στο πρόβλημα όποιος έχει καμια ιδέα ........ευπρόσδεκτη!!
select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ