Вопрос по c# – C # MessageBox результат диалога

42

Я хочу сделать подтверждение MessageBox. Вот окно сообщения:

MessageBox.Show("Do you want to save changes?", "Confirmation", messageBoxButtons.YesNoCancel);

И я хочу сделать что-то вроде этого (в псевдокоде):

if (MessageBox.Result == DialogResult.Yes)
    ;
else if (MessageBox.Result == DialogResult.No)
    ;
else
    ;

Как я могу это сделать в C #?

Ваш Ответ

5   ответов
103
DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{ 
    //...
}
else if (result == DialogResult.No)
{ 
    //...
}
else
{
    //...
} 
Это то, что я хочу, спасибо .... Nitin Patil
Большое спасибо ... это было очень легко .. biox
10

Вы также можете сделать это в один ряд:

if (MessageBox.Show("Text", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes)

И если вы хотите показать окно сообщения сверху:

if (MessageBox.Show(new Form() { TopMost = true }, "Text", "Text", MessageBoxButtons.YesNo) == DialogResult.Yes)
Да, но на «иначе, если», если я добавлю еще, если (MessageBox.Show («Текст», «Заголовок», MessageBoxButtons.YesNo) == DialogResult.No) сообщение будет вновь появляться biox
Конечно, но если у вас есть только два варианта Да / Нет, у вас нет причин использовать другое, если ... sczdavos
Да, вы правы, но у меня есть 3 Да, Нет и Отмена: D biox
О, хорошо, сэр. По крайней мере, вы знаете эту возможность: P Что я в основном хочу упомянуть, это свойство TopMost. sczdavos
3

Если вы используете WPF и предыдущие ответы не помогают, вы можете получить результат, используя:

var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question);

if (result == MessageBoxResult.Yes)
{
    // Do something
}
2

поэтому я перешел к MSDN. Там я обнаружил, что теперь код должен выглядеть следующим образом:

//var is of MessageBoxResult type
var result = MessageBox.Show(message, caption,
                             MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question);

// If the no button was pressed ... 
if (result == DialogResult.No)
{
    ...
}

Надеюсь, это поможе

2

пользовать переключатель, я стараюсь по возможности избегать использования операторов if.

var result = MessageBox.Show(@"Do you want to save the changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
switch (result)
{
    case DialogResult.Yes:
        SaveChanges();
        break;
    case DialogResult.No:
        Rollback();
        break;
    default:
        break;
}

Похожие вопросы