Как использовать результат из Да / Нет MessageBox?

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

"System.Nullable" не содержит определения "Да", и метод расширения "Да", принимающий первый аргумент типа "System.Nullable", не найден (вы пропустили директиву using или ссылку на сборку?)

(То же самое касается "Нет") и

"System.Windows.Window.DialogResult" является "свойством", но используется как "тип".

Это то, что я до сих пор:

private void btnSeat1_Click(object sender, RoutedEventArgs e)
{
    if (!Seat1)
    {
        DialogResult Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);

        if (Result == DialogResult.Yes)
        {
            MessageBox.Show("You Reserved this seat");
            btnSeat1.Text = "Reserved";
        }
        else if (Result == DialogResult.No)
        {
            Environment.Exit(0);
        }

Примечание. Я использовал только Environment.Exit в качестве заполнителя. Это было преднамеренно и будет изменено соответственно. Это не источник проблемы.

1 ответ

Решение

Эта строка:

DialogResult Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);

На самом деле должно быть так:

var Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);

И тогда, если вы наводите Result Вы можете увидеть его не из DialogResult, но MessageBoxResultили, если вы предпочитаете явно ввести его, попробуйте:

MessageBoxResult Result = MessageBox.Show(...

Таким образом, вы бы использовали это в своих выражениях if:

if (Result == MessageBoxResult.Yes)
{
    MessageBox.Show("You Reserved this seat");
    btnSeat1.Text = "Reserved";
}
else if (Result == MessageBoxResult.No)
{
    Environment.Exit(0);
}

Вы получаете ошибку, потому что DialogResult на самом деле является собственностью Window класс, и вы пытаетесь использовать его как его тип (как говорит компилятор).

Другие вопросы по тегам