我想获取用户点击的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;
}
答案 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");
}