Domanda

che sto cercando di fare in modo che l'utente viene richiesto di confermare l'uscita il mio programma in C #, ma per qualche ragione, se dicono "sì" Vorrebbero uscita, la finestra di conferma si solleva di nuovo. Non riesco a capire perché.

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

Soluzione

Ah, hai controllato la CloseReason per l'evento FormClosing? Penso che si potrebbe ottenere lo stesso evento per due motivi diversi (anche se non mi aspetto esattamente che ciò accada normalmente); controllare il FormClosingEventArgs per vedere quali sono i parametri.

Altri suggerimenti

Utilizzare questo

 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, ho capito come risolvere il problema. Ho rimosso l'Application.Exit (); evento dall'evento FormClosing, e si è trasferito in caso FormClosed. Tutto ora funziona.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top