2
我與FormClosing
事件C#Windows窗體的FormClosing事件
DialogResult dg = MessageBox.Show("Do you want to save changes?", "Closing", MessageBoxButtons.YesNoCancel);
if (dg == DialogResult.Yes)
{
saveToolStripMenuItem_Click(sender, e);
}
else if (dg == DialogResult.Cancel)
{
e.Cancel = true;
}
此代碼的工作完美,當我點擊X關閉表工作:
- 取消將返回到窗體不作任何更改
- 否將立即關閉表格
- YES將打開保存對話框
上面是100%正確的,但是,一旦保存對話框出現,當我點擊保存對話框中的取消按鈕時,它仍然關閉窗體 - 它也應該返回?
不要直接調用'saveToolStripMenuItem_Click(sender,e);'。編寫一個包含邏輯的方法,並從這裏和'saveToolStripMenuItem_Click()'處理程序調用它。然後你可以讓該方法返回一個布爾值來指示保存對話框是否被取消,並做出適當的響應。 –
「當我點擊保存對話框中的取消按鈕,它仍然關閉窗體」你確定你的意思是取消?因爲當我嘗試你的代碼並單擊取消表單不會關閉,但是當我單擊**否**表單關閉時,因爲代碼中沒有處理該情況的邏輯 –
上面的代碼在FormClosing事件中? –