Результат диалога MessageBox.Show / Сообщество C # .NET 2017 - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу создать окно вопроса (MessageBox.Show), но не могу понять, как получить результаты диалога. Я просматривал все посты, видео, но мне кажется, что он не подходит для версии 2017.NET (Wpf)!

(В основном я хочу задать вопрос после InitializeComponents ())

Вот мой код.

(Code Here)

1 Ответ

2 голосов
/ 10 апреля 2019

WPF

Если вы используете WPF MessageBox.Show() возвращает MessageBoxResult:

MessageBoxResult result = MessageBox.Show("asd", "xcvxcv", MessageBoxButton.OKCancel);

if (result == MessageBoxResult.OK)
    MessageBox.Show("Ok was selected");

Windows Forms

Если вы используете Windows Forms MessageBox.Show() возвращает DialogResult:

DialogResult result = MessageBox.Show("test", "bla bla", MessageBoxButtons.OKCancel);

if (result == DialogResult.OK)
    MessageBox.Show("Ok was selected");

Может возникнуть проблема с конструктором

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

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

public MainWindow()
{
    InitializeComponent();
    this.IsEnabled = false;
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    MessageBoxResult result = MessageBox.Show("asd", "xcvxcv", MessageBoxButton.OKCancel);

    if (result == MessageBoxResult.OK)
        MessageBox.Show("Ok was selected");

    this.IsEnabled = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...