1
我有一個簡單的WinForm應用程序,我已經爲OnFormClosing
定義了覆蓋,以便能夠請求退出確認並關閉sql連接。 它看起來像這樣:從MenuItem觸發OnFormClosing()
protected override void OnFormClosing(FormClosingEventArgs e)
{
switch (MessageBox.Show(this, "Really quit " + Application.ProductName + "?",
Application.ProductName, MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation))
{
case DialogResult.Yes:
con.Close();
Debug.WriteLine("Connection Closed");
Debug.WriteLine("Exiting Application");
Application.Exit();
break;
default:
break;
}
}
不幸的是,當我關閉表單中的「真,戒」 - 對話兩次彈出。 這是爲什麼呢?
將斷點在OnFormClosing(),然後點擊第一個X鍵和後來退出菜單,檢查這兩個調用的調用堆棧,並從所有(這方法參見( s))OnFormClosing()方法的調用即將到來。 – VS1
我的代碼中存在另一個問題,修復了這個問題。無論我在哪裏調用它,真正退出對話框都會彈出兩次。 – farosch
我不太清楚如何讀取調用堆棧,但我認爲第二次從Application.exit()方法調用 – farosch