Y.Arsoy
Y.Arsoy

Reputation: 129

Message box with “Yes”, “No” choices in C#?

I want to make a MessageBox confirmation. Here is the message box:

DialogResult dialog = MessageBox.Show("Etes vous sûre de vouloir fermer le programme ?", "Exit",MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
  Application.Exit();
}
else if (dialog == DialogResult.No)
{
    e.Cancel = true;
}

The problem is, when I click the YES Button, the popup does not close automatically. It will be closed after I click 2 times again. It should be closed from the first time.

It seems pretty easy but I'm not sure where is my mistake;

Upvotes: 3

Views: 26928

Answers (4)

Anjan Kant
Anjan Kant

Reputation: 4316

Below is code to prompt message (Yes/No):

DialogResult dialogResult = MessageBox.Show("Are you sure to delete Yes/No", "Delete", MessageBoxButtons.YesNo);

if (dialogResult == DialogResult.Yes)
{
   /// do something here        
}

Upvotes: 4

Ahmed Noozan Ali
Ahmed Noozan Ali

Reputation: 38

switch (MessageBox.Show("Etes vous sûre de vouloir fermer le programme ?", "Your_Application_Name", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
        {
            case DialogResult.Yes:
                Application.Exit();
                break;
            case DialogResult.No:
                //Action if No
                break;

        }

Upvotes: 0

i486
i486

Reputation: 6564

Call Application.DoEvents() before Application.Exit(). But it is better to close parent form with Close() instead of Application.Exit.

Upvotes: 1

Dmitriy Zapevalov
Dmitriy Zapevalov

Reputation: 1357

If it's in main form close method you can use it like this:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (MessageBox.Show("Really close?", "Exit", MessageBoxButtons.YesNo) ==
        System.Windows.Forms.DialogResult.No)
        e.Cancel = true;
}

If user press "Yes" your form will be closed due to no close cancellation. If it is not main form close doesn't mean application exit. In this case you can close parent form explicitly after ShowDialog call.

Upvotes: 7

Related Questions