我尝试使用DialogResult检查Messagebox的YesNoCancel。我使用的代码没有任何问题:
DialogResult dlgResult = MessageBox.Show(
"Save changes before closing?",
"Warning",
MessageBoxButton.YesNoCancel,
MessageBoxImage.Question);但是将我抛出错误
'System.Windows.Window.DialogResult‘是’属性‘,但使用起来像'type’
发布于 2011-06-07 12:17:43
DialogResult枚举和Window.DialogResult性质之间存在着冲突。
要解决这个问题,您可以使用完全限定的名称。具体如下:
System.Windows.Forms.DialogResult dlgResult = ...但是,由于您使用的是WPF,所以使用MessageBoxResult枚举获取消息的结果:
MessageBoxResult result =
MessageBox.Show("Would you like to see the simple version?",
"MessageBox Example", MessageBoxButton.OKCancel);发布于 2011-06-07 12:14:21
尝试将dlgResult声明为var。那它应该能起作用
var dlgResult =
MessageBox.Show("Save changes before closing?",
"Warning", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);而且,WPF下的MessageBox.Show确实返回MessageBoxResult而不是DialogResult。DialogResult用于WindowsForms。
发布于 2011-06-07 12:20:22
问题是,DialogResult也是表单的一个属性,编译器认为您是在引用该属性。
您在这里有几种选择:
System.Windows.Forms.DialogResult类型的完全限定名var可以让编译器找出类型并消除名称冲突https://stackoverflow.com/questions/6264954
复制相似问题