我有一个消息框确认退出时,用户单击x图标,它的工作,但我只需要点击按钮是几次,直到它关闭。有人知道为什么或如何我可以解决它吗?
private void Interfaz_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult salir = MessageBox.Show("¿Seguro que desea cerrar el programa?", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (salir == DialogResult.Yes)
{
Application.Exit();
}
else
{
e.Cancel = true;
}
请测试否。您已经关闭了表单,没有必要调用Application。退出,它将触发对FormClosing
的第二次调用private void Interfaz_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult salir = MessageBox.Show("¿Seguro que desea cerrar el programa?", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (salir == DialogResult.No)
e.Cancel = true;
}
但是,我建议为ClosingReason添加一个测试。
private void Interfaz_FormClosing(object sender, FormClosingEventArgs e)
{
If(e.CloseReason == CloseReason.UserClosing)
{
DialogResult salir = MessageBox.Show("¿Seguro que desea cerrar el programa?",
"Advertencia", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (salir == DialogResult.No)
e.Cancel = true;
}
}