I have a Messagebox to confirm the exit when the user clicks on the x icon and it works, but i just have to click the button Yes a few times until it closes. Anyone knows why or how can i fix it?
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;
}
Just test for no. You are already closing the form, there is no need to call Application.Exit and it will trigger a second call to 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;
}
However, I suggest to add a test for the 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;
}
}