微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么System.Windows.MessageBoxImage具有相同值的枚举子项?

我试图通过MessageBoxImage枚举编写我自己的抽象,并看到MessageBoxImage被定义为:

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

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

如何在.NET中侦听Windows广播消息?

使用ScheduledTasks类删除预定作业

是否有可能确定哪个进程启动我的.Net应用程序?

如何检查一条path是否是另一条path的孩子?

为什么在Vista / 7中,RequestAdditionalTime()方法不能重新启动?

历史上有不同的图标,最终被合并成一个实际的图标图像。 所以有几个枚举类型的值(例如Hand和Stop),它们在现代Windows操作系统中意味着同样的东西。 他们之间没有任何区别,他们只是别名。

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

我建议拥有自己的“状态”值,然后根据需要将其转换为图标值 – 两者传达的信息十分不同,所以试图超载(损坏)MessageBox值来传递额外的信息不会是一个非常好的方法

并非所有的枚举(错误,信息,停止和警告)在精简版框架中都可用。

如果您在完整的Windows客户端和Compact Framework客户端之间共享代码文件,则需要使用Asterisk,Exclamation,Hand,None或Question枚举。

https://msdn.microsoft.com/en-us/library/system.windows.forms.messageBoxicon(v=vs.80).aspx

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐