无法使用DialogResult
我尝试使用DialogResult
来检查Messagebox的YesNoCancel 。 我正在使用以下代码,我没有看到任何问题:
DialogResult dlgResult = MessageBox.Show( "Save changes before closing?", "Warning", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
但Visual Studio引发了我的错误说法
‘System.Windows.Window.DialogResult’是’属性’,但用作’类型’
DialogResult Enumeration和Window.DialogResult属性之间存在冲突。
要解决此问题,可以使用枚举的完全限定名称。 如下:
System.Windows.Forms.DialogResult dlgResult = ...
但是,由于您使用的是WPF ,因此请使用MessageBoxResult Enumeration来获取消息的结果:
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);
然后用结果来检查