MessageBox.Show Dialog Result / Сообщество C# .NET 2017

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

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

Вот мой код.

MessageBox.Show Dialog Result / Сообщество C# .NET 2017

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
416
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

WPF

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

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

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

Формы Windows

Если вы используете 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;
}

Это работает по назначению. Какая проблема у вас с этим? Вы должны опубликовать код, чтобы прояснить вашу проблему.

kara 10.04.2019 11:02

@CassioTDSTheDiamondSword это не работает, потому что это игра в догадки о том, что вы хотите, пожалуйста, обновите вопрос, указав более подробную информацию, код, который вы пробовали, и то, чего вы намереваетесь достичь (до его закрытия)

TheGeneral 10.04.2019 11:02

Первая строка DialogResult подчеркнута красным

CassioTDS 10.04.2019 11:03

@CassioTDSTheDiamondSword, что это за приложение? винформы? впф? сеть? какие? Например, есть 2 разных метода MessageBox.Show, в зависимости от того, какую структуру пользовательского интерфейса вы используете; MessageBoxResult работает вместо DialogResult?

Marc Gravell 10.04.2019 11:06

Разместите свой код. Разместите все «использование xxx» в своем файле. Подчеркивание красным цветом должно показать вам сообщение об ошибке в вашем «Списке ошибок» при попытке создать решение. Опубликовать эту информацию на ваш вопрос

kara 10.04.2019 11:07

@kara note OP теперь отредактировал «WPF» в вопросе - не ваша вина (ответ предшествует редактированию), но вы можете обновить, чтобы заметить это (я полагаю, что это ответ winforms); Я думать, что просто означает замену DialogResult на MessageBoxResult и MessageBoxButtons на MessageBoxButton (без "s")

Marc Gravell 10.04.2019 11:08

@MarcGravell Опубликуйте это как автор;)

CassioTDS 10.04.2019 11:12

@MarcGravell Спасибо. Дополнил ли мой пост примером кода для WPF и WinForms

kara 10.04.2019 11:12

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