Кнопки MessageBox? - PullRequest
       11

Кнопки MessageBox?

25 голосов
/ 24 марта 2011

Как бы я сказал, если бы кнопка «да» в окне сообщения была нажата, чтобы сделать это, то и другое? В C #.

Ответы [ 6 ]

63 голосов
/ 24 марта 2011
  1. Ваш звонок на MessageBox.Show должен пройти MessageBoxButtons.YesNo, чтобы получить кнопки Да / Нет вместо OK Кнопка.

  2. Сравните результат этого вызова (который заблокирует выполнение до возврата диалога) с DialogResult.Yes ....

if (MessageBox.Show("Are you sure?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
    // user clicked yes
}
else
{
    // user clicked no
}
10 голосов
/ 24 марта 2011

Если вы действительно хотите, чтобы кнопки Да и Нет (и при условии WinForms):

void button_Click(object sender, EventArgs e)
{
    var message = "Yes or No?";
    var title = "Hey!";
    var result = MessageBox.Show(
        message,                  // the message to show
        title,                    // the title for the dialog box
        MessageBoxButtons.YesNo,  // show two buttons: Yes and No
        MessageBoxIcon.Question); // show a question mark icon

    // the following can be handled as if/else statements as well
    switch (result)
    {
    case DialogResult.Yes:   // Yes button pressed
        MessageBox.Show("You pressed Yes!");
        break;
    case DialogResult.No:    // No button pressed
        MessageBox.Show("You pressed No!");
        break;
    default:                 // Neither Yes nor No pressed (just in case)
        MessageBox.Show("What did you press?");
        break;
    }
}
6 голосов
/ 24 марта 2011
if(DialogResult.OK==MessageBox.Show("Do you Agree with me???"))
{
         //do stuff if yess
}
else
{
         //do stuff if No
}
2 голосов
/ 10 ноября 2014

Обновленная версия правильного ответа для .NET 4.5 будет.

if (MessageBox.Show("Are you sure?", "Confirm", MessageBoxImage.Question) 
    == MessageBoxResult.Yes)  
{
// If yes
}
else  
{
// If no
}

Кроме того, если вы хотите связать кнопку с командой в модели представления, вы можете использовать следующее. Это совместимо с MvvmLite:

public RelayCommand ShowPopUpCommand
{
   get
   {
   return _showPopUpCommand ??
      (_showPopUpCommand = new RelayCommand(
         () =>
               {
                // Put if statement here
               }
      }));
   }
}
0 голосов
/ 04 января 2018

Этот способ проверить состояние, нажимая кнопки «YES» или «NO» в окне MessageBox.

DialogResult d = MessageBox.Show("Are you sure ?", "Remove Panel", MessageBoxButtons.YesNo);
            if (d == DialogResult.Yes)
            {
                //Contents
            }
            else if (d == DialogResult.No)
            {
                //Contents
            }
0 голосов
/ 24 марта 2011

Проверьте это:

                     if (
 MessageBox.Show(@"Are you Alright?", @"My Message Box",MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        //YES ---> Ok IM ALRIGHHT
                    }
                    else
                   {
                   //NO --->NO IM STUCK
                    }

Привет

...