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事件中? –