Ответ 1
DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{
//...
}
else if (result == DialogResult.No)
{
//...
}
else
{
//...
}
Я хочу сделать подтверждение MessageBox. Вот окно сообщения:
MessageBox.Show("Do you want to save changes?", "Confirmation", messageBoxButtons.YesNoCancel);
И я хочу сделать что-то вроде этого (в псевдокоде):
if (MessageBox.Result == DialogResult.Yes)
;
else if (MessageBox.Result == DialogResult.No)
;
else
;
Как я могу сделать это на С#?
DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{
//...
}
else if (result == DialogResult.No)
{
//...
}
else
{
//...
}
Вы также можете сделать это в одной строке:
if (MessageBox.Show("Text", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes)
И если вы хотите показать верхнюю панель сообщений:
if (MessageBox.Show(new Form() { TopMost = true }, "Text", "Text, MessageBoxButtons.YesNo) == DialogResult.Yes)
Если вы используете WPF, и предыдущие ответы не помогают, вы можете получить результат, используя:
var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
// Do something
}
Этот ответ не работал у меня, поэтому я перешел к 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)
{
...
}
Надеюсь, что это поможет
Вместо того, чтобы использовать инструкции if, я могу предложить вместо этого использовать переключатель, я стараюсь избегать использования инструкций 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;
}