-1

当用户单击 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;
        }
4

1 回答 1

3

只是测试没有。您已经关闭了表单,无需调用 Application.Exit 它将触发对 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;
    }
 }
于 2014-06-08T22:36:43.050 回答