无法使用DialogResult
本文关键字:DialogResult | 更新日期: 2023-09-27 17:58:46
我尝试使用DialogResult
检查Messagebox
的是否取消。我正在使用以下代码,我认为没有任何问题:
DialogResult dlgResult = MessageBox.Show(
"Save changes before closing?",
"Warning",
MessageBoxButton.YesNoCancel,
MessageBoxImage.Question);
但是Visual Studio在说时出错
'System.Windows.Window.DialogResult'是"属性",但使用方式类似"类型"
要解决此问题,可以使用enumuration的完全限定名称。如下所示:
System.Windows.Forms.DialogResult dlgResult = ...
但是,由于您使用的是WPF,请使用MessageBoxResult枚举来获得消息的结果:
MessageBoxResult result =
MessageBox.Show("Would you like to see the simple version?",
"MessageBox Example", MessageBoxButton.OKCancel);
问题是DialogResult
也是表单的一个属性,编译器认为您引用了这个属性。
这里有几个选择:
- 使用类型
System.Windows.Forms.DialogResult
的完全限定名称 - 使用
var
让编译器找出类型并消除名称冲突
DialogResult
不是类型,它是属性,您需要类型MessageBoxResult
从这个问题我可以看出你没有使用winforms。所以代码会显示
MessageBoxResult result = MessageBox.Show(
"Save changes before closing?",
"Warning",
MessageBoxButton.YesNoCancel,
MessageBoxImage.Question);
尝试将dlgResult
声明为var
。然后它应该工作
var dlgResult =
MessageBox.Show("Save changes before closing?",
"Warning", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
此外,WPF下的MessageBox.Show
确实返回MessageBoxResult,而不是DialogResult
。DialogResult
用于WindowsForms。
只需尝试MessageBoxResult
MessageBox将返回MessageBoxResult枚举值
MessageBoxResult dlgResult = MessageBox.Show("Save changes before closing?","Warning", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
Console.WriteLine(dlgResult);
MessageBoxResult result = MessageBox.Show(
"Save changes before closing?",
"Warning",
MessageBoxButton.YesNoCancel,
MessageBoxImage.Question);
然后使用结果检查