Pregunta

Estoy tratando de hacerlo de modo que el usuario tiene que confirmar que sale de mi programa en C #, pero por alguna razón, si dicen "sí" que les gustaría salida, el cuadro de confirmación surgiría de nuevo. No puedo entender por qué.

    if (MessageBox.Show("Are you sure you want to exit?", "Confirm exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
    {
        e.Cancel = true;
    }
    else { Application.Exit(); }
¿Fue útil?

Solución

Ah, ¿verificó la CloseReason para el evento FormClosing? Creo que podría obtener el mismo evento por dos razones diferentes (aunque no exactamente espero que eso ocurra normalmente); comprobar su FormClosingEventArgs para ver cuáles son los parámetros.

Otros consejos

El uso de este

 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (MessageBox.Show("Are you sure you want to close?", "Infomate", MessageBoxButtons.YesNo) == DialogResult.No)
        {
            e.Cancel = true;
        }        
    }

Ah, me di cuenta de cómo solucionarlo. Quité el Application.Exit (); evento del evento FormClosing, y se movió en el caso FormClosed. Todo funciona ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top