加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 为什么System.Windows.MessageBoxImage具有相同值的枚举

发布时间:2020-12-14 05:29:22 所属栏目:Windows 来源:网络整理
导读:我正在尝试在MessageBox Image枚举上编写自己的抽象,并看到MessageBoxImage定义为: namespace System.Windows { public enum MessageBoxImage { None = 0,Error = 16,Hand = 16,Stop = 16,Question = 32,Exclamation = 48,Warning = 48,Asterisk = 64,Infor
我正在尝试在MessageBox Image枚举上编写自己的抽象,并看到MessageBoxImage定义为:

namespace System.Windows
  {
      public enum MessageBoxImage
      {
          None = 0,Error = 16,Hand = 16,Stop = 16,Question = 32,Exclamation = 48,Warning = 48,Asterisk = 64,Information = 64,}
  }

Show方法如何确定是显示错误图像还是手形图像?
我如何编写一个采用MessageBoxImage类型的方法,并返回一个映射到MessageBoxImage类型的CustomMessageBoxImage类型,因为我不能在同一个switch语句中同时包含MessageBoxImage.Error和MessageBoxImage.Hand?

解决方法

历史上,有不同的图标最终被合并为单个实际图标图像.因此,有几个枚举类型值(例如Hand和Stop)在现代Windows操作系统中只是意味着相同的东西.它们之间没有区别,它们只是别名.

如果你想有新的值来表示差异,那么你可以使用一个辅助变量(例如“isError”)来传达你想要在Stop和Hand之间应用的差异.或者你可以将Icon值复制到一个int并设置一个高在值中指示此额外信息,以便它可以在单个变量中“携带”.或者您可以使用与MessageBoxIcon“无关”的自己的枚举,并具有从您的值转换为MessageBoxIcon值的方法.

我建议拥有自己的“状态”值,然后根据需要将其转换为Icon值 – 两者传达的信息完全不同,因此尝试重载(损坏)MessageBox值以传达额外信息将不会很好方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读