MessageBox.Show对话框结果/ C#.NET 2017社区

时间:2019-04-10 08:53:47

标签: c# wpf

我想创建一个问题框(MessageBox.Show),但我不知道如何获取对话框结果。我看了所有帖子,视频,但似乎对2017年的.NET(Wpf)版本不满意!

(基本上我想在InitializeComponents()之后问一个问题)

这是我的代码。

(Code Here)

1 个答案:

答案 0 :(得分:2)

WPF

如果您使用的是WPF,MessageBox.Show()会返回MessageBoxResult

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

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

Windows窗体

如果您使用的是Windows窗体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;
}