C#对话框和DialogResult

时间:2010-06-30 15:42:40

标签: c# visual-studio-2010

我想获取用户点击的DialogBox按钮...但是当我使用DialogResult时出现此错误

'System.Windows.Window.DialogResult' is a 'property' but is used like a 'type'

如何使用DialogResult ??

好的,我设法解决了。

MessageBoxResult Result = MessageBox.Show("Message Body", @"Caption/Title", MessageBoxButton.YesNo);
        switch (Result)
        {
            case MessageBoxResult.Yes:
                MessageBox.Show("Yes Pressed!!");
                break;
            case MessageBoxResult.No:
                MessageBox.Show("No Pressed!!");
                break;
        }

6 个答案:

答案 0 :(得分:3)

更新:刚刚意识到你正在使用WPF,而不是WinForms。这是WPF中DialogResult的正确实现:

MyDialog dialog = new MyDialog();
bool? dialogResult = dialog.ShowDialog();
if (dialogResult.HasValue && dialogResult.Value)
{
   // User clicked OK
}
else
{
   // User clicked Cancel"
}

有一个很好的教程here

听起来好像你错误地使用了表单的DialogResult属性。您应该执行以下操作:

DialogResult result = Form.DialogResult;
if (result == DialogResult.Yes)
{
   // Do something
}

您可以找到完整的DialogResult枚举明细here

答案 1 :(得分:1)

你需要一个DialogBox吗?或者MessageBox是否适用于您的目的?

 DialogResult dlg = MessageBox.Show("Question User?",
                   "MessageBox Title",
                   MessageBoxButtons.YesNo,
                   MessageBoxIcon.Question);
            if (dlg == DialogResult.No)
            {
                //user changed mind. return
                return;
            }

答案 2 :(得分:0)

DialogResult是Enum - 您可以直接与表单的DialogResult属性进行比较。

答案 3 :(得分:0)

如果你使用WPF或Silverlight,那么DialogResult是一个bool?你可以用??如果结果为null,则提供值。

if (myWindow.DialogResult ?? false)
    Debug.WriteLine("You clicked OK");
else
    Debug.WriteLine("You clicked Cancel");

答案 4 :(得分:0)

您正在使用WPF的DialogResult属性,该属性为Nullable<bool>,而不是枚举。

您需要检查结果:

bool? dialogResult = dialogBox.ShowDialog();

if (dialogResult.HasValue) // Should always have a value, at this point, since the dialogBox.ShowDialog() returned at this point.  Will be false until the dialog is closed, however
{
    if (dialogResult.Value)
    {
        // User "accepted" the dialog, hitting yes, OK, etc...
    }
    else
    {
        // User hit "cancel" button
    }
}

答案 5 :(得分:0)

C#对话框和DialogResult

    {

        DialogResult a1 = MessageBox.Show("Test", "Title", MessageBoxButtons.YesNo);
        if (a1 == DialogResult.Yes)
            MessageBox.Show("Yes");
        else if (a1 == DialogResult.No)
            MessageBox.Show("No");

    }
相关问题