[英]C# Windows Form_Closing Issue
当用户单击应用程序右上角的红色“ 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.Cancel来检查dr是否等于ok,但同样的情况也会发生。
有什么想法吗?
e.Cancel = true;
取消操作。 默认为false
。 您没有在任何地方将其设置为true。 尝试这个。
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
。 我会修改您的消息框以显示“是”和“否”按钮,因为我认为它使用户更清楚,然后如果用户选择“否”,我将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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.