首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用DialogResult

不能使用DialogResult
EN

Stack Overflow用户
提问于 2011-06-07 12:11:55
回答 6查看 12.3K关注 0票数 9

我尝试使用DialogResult检查Messagebox的YesNoCancel。我使用的代码没有任何问题:

代码语言:javascript
复制
DialogResult dlgResult = MessageBox.Show(
   "Save changes before closing?", 
   "Warning", 
   MessageBoxButton.YesNoCancel, 
   MessageBoxImage.Question);

但是将我抛出错误

'System.Windows.Window.DialogResult‘是’属性‘,但使用起来像'type’

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-06-07 12:17:43

DialogResult枚举Window.DialogResult性质之间存在着冲突。

要解决这个问题,您可以使用完全限定的名称。具体如下:

代码语言:javascript
复制
System.Windows.Forms.DialogResult dlgResult = ...

但是,由于您使用的是WPF,所以使用MessageBoxResult枚举获取消息的结果:

代码语言:javascript
复制
MessageBoxResult result = 
    MessageBox.Show("Would you like to see the simple version?", 
    "MessageBox Example", MessageBoxButton.OKCancel);
票数 10
EN

Stack Overflow用户

发布于 2011-06-07 12:14:21

尝试将dlgResult声明为var。那它应该能起作用

代码语言:javascript
复制
    var dlgResult = 
        MessageBox.Show("Save changes before closing?", 
            "Warning", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);

而且,WPF下的MessageBox.Show确实返回MessageBoxResult而不是DialogResultDialogResult用于WindowsForms。

票数 1
EN

Stack Overflow用户

发布于 2011-06-07 12:20:22

问题是,DialogResult也是表单的一个属性,编译器认为您是在引用该属性。

您在这里有几种选择:

  • 使用System.Windows.Forms.DialogResult类型的完全限定名
  • 使用var可以让编译器找出类型并消除名称冲突
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6264954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档