Захватывающий результат MessageBox - PullRequest
1 голос
/ 28 марта 2012

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

// Confirm if the user really wants to delete the product
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" + productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.OK)
{
    MessageBox.Show("deleted");
}

Когда я запускаю код и пытаюсь удалить продукт, удаленный никогда не отображается.На странице MSDN говорится, что нужно использовать MessageBoxResult вместо DialogResult, но Visual Studio не распознает MessageBoxResult, и я использую DialogResult в другом месте моего кода для диалога открытия файла.Очевидно, это не правильный способ проверить это.

Ответы [ 4 ]

6 голосов
/ 28 марта 2012

Вы должны попросить DialogResult.Yes

// Confirm if the user really wants to delete the product
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" +     productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo,  MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
    MessageBox.Show("deleted");
} 
1 голос
/ 28 марта 2012

У вас установлен тип окна сообщения да / нет, но вы пытаетесь поймать результат OK. Поймай да, и ты будешь отсортирован.

0 голосов
/ 28 марта 2012

Просто спросите правильный DialogResult.

if (result == DialogResult.Yes)

Помните, что диалог может иметь разные результаты, и что вы также можете написать свои собственные результаты. Поэтому: всегда смотрите на результат, который вы ожидаете, и на результат, который вы проверяете.

Привет,

0 голосов
/ 28 марта 2012

Вы используете кнопки YesNo, поэтому DialogResult.OK не имеет к этому никакого отношения.Вы должны сделать

if (result == DialogResult.Yes)

для вашего состояния.

...