C#Windows窗体关闭问题
本文关键字:问题 窗体 C#Windows | 更新日期: 2023-09-27 18:28:34
当用户单击应用程序右上角的红色"X"按钮时,我似乎很难弹出对话框并正常工作。我可以让对话框出现,询问他们是否真的想关闭应用程序,但无论他们点击什么,它都会关闭表单;
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("Are you sure want to close?", "Close Program", MessageBoxButtons.OKCancel);
if (dr == DialogResult.Cancel)
{
e.Cancel = false;
}
}
我也尝试过代替e。取消以检查dr是否等于ok,但同样的情况也会发生。
有什么想法吗?
e.Cancel = true;
取消操作。默认为CCD_ 2。你不会在任何地方把它设置为真。试试这个。
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("Are you sure want to close?", "Close Program", MessageBoxButtons.OKCancel);
if (dr == DialogResult.Cancel)
{
e.Cancel = true;
}
}
oneliner:
e.Cancel = MessageBox.Show("Are you sure want to close?", "Close Program", MessageBoxButtons.OKCancel) == DialogResult.Cancel;
问题是您从未将e.Cancel
设置为true
。我会修改你的消息框,显示"是"answers"否"按钮,因为我觉得这会让用户更清楚,然后如果用户选择"否",我只会将e.Cancel
设置为true。
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("Are you sure want to close?", "Close Program", MessageBoxButtons.YesNo);
e.Cancel = dr == DialogResult.No;
}
关闭事件发生在表单关闭时。当窗体关闭时,对象中创建的所有资源都将被释放,并且该窗体将被处置。如果取消此活动,表单将保持打开状态要取消表单的关闭,请将传递给事件处理程序的CancelEventArgs的cancel属性设置为true
e.Cancel=true