本篇文章给大家谈谈为什么System.Windows.MessageBoxImage具有相同值的枚举子项?,同时本文还将给你拓展.net–为什么System.Windows.MessageBoxIma
本篇文章给大家谈谈为什么System.Windows.MessageBoxImage具有相同值的枚举子项?,同时本文还将给你拓展.net – 为什么System.Windows.MessageBoxImage具有相同值的枚举子项?、.net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作、AfxMessageBox () 和 MessageBox () 的区别 & PCH 预编译头文件(201...、AfxMessageBox()和MessageBox()的区别 & PCH预编译头文件(201...等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 为什么System.Windows.MessageBoxImage具有相同值的枚举子项?
- .net – 为什么System.Windows.MessageBoxImage具有相同值的枚举子项?
- .net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作
- AfxMessageBox () 和 MessageBox () 的区别 & PCH 预编译头文件(201...
- AfxMessageBox()和MessageBox()的区别 & PCH预编译头文件(201...
为什么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,information = 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
.net – 为什么System.Windows.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?
解决方法
如果你想有新的值来表示差异,那么你可以使用一个辅助变量(例如“isError”)来传达你想要在Stop和Hand之间应用的差异.或者你可以将Icon值复制到一个int并设置一个高在值中指示此额外信息,以便它可以在单个变量中“携带”.或者您可以使用与MessageBoxIcon“无关”的自己的枚举,并具有从您的值转换为MessageBoxIcon值的方法.
我建议拥有自己的“状态”值,然后根据需要将其转换为Icon值 – 两者传达的信息完全不同,因此尝试重载(损坏)MessageBox值以传达额外信息将不会很好方法.
.net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作
我的第一种方法是使用System.Windows.Forms.Timer及其Tick事件.我选择了它,因为我正在阅读的教程.不知怎的,我无法使服务工作.它安装并启动没有问题,但它不会触发事件(我将调试器附加到进程并看到它没有被触发).我认为在Windows服务中使用Forms计时器可能不是一个好主意,因此我决定切换到System.Timers.Timer并利用其Elapsed事件.这也不起作用.我在Windows窗体应用程序中尝试了两种提到的方法,但它们都有效.
经过一番挖掘后,我发现这个网站:http://weblogs.asp.net/sibrahim/archive/2004/01/13/58429.aspx,博主建议使用另一个计时器:System.Threading.Timer.我第三次改变了这种方法,BOOM开始像魅力一样工作.
我的问题是:为什么我不能在Windows服务中使用其他计时器,为什么找到有关它的信息这么困难?
System.Timers.Timer是一个基于服务器的计时器,并在您创建它的线程上引发一个事件(我认为).如果这不起作用,也许你没有启动计时器或计时器在一个立即结束的线程上运行(因为,没有任何东西保持线程活着,所以它完成).
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx
System.Threading.Timer计时器使用在ThreadPool线程上运行的回调,并且根本不依赖于消息泵,因此这有效.
当您在WinForms项目中运行Application.Run(myForm)时,该调用也会运行消息泵,这将管理UI消息.您提到的Windows计时器是一个UI组件,并期望消息泵运行,以便在UI线程上发生tick事件.
看看这里在Windows服务中运行消息泵:
Message pump in .NET Windows service
进一步阅读:
http://support.microsoft.com/kb/842793
总之,我只是使用System.Threading.Timer类.
AfxMessageBox () 和 MessageBox () 的区别 & PCH 预编译头文件(201...
----------------------------------------------------------------------------------------------
问:AfxMessageBox () 和 MessageBox () 的区别?
答:带 Afx 的是全局函数,可以在程序任何地方使用,不带的是 CWnd 的子函数,只能在 CWnd 窗口类对象里面使用
附: int AfxMessageBox (LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0);
----------------------------------------------------------------------------------------------
因为看到 *.pch 文件很大,于是便把它给删了,编译的时候出现这样的问题 Cannot open precompiled header file: ''Debug/6_6 消息对话框.pch'': No such file
网上找了一下解决办法,其实很简单,只需要让编译器生成一个 pch 文件就可以了。也就是说把 Stdafx.cpp(即指定 / Yc 的那个 cpp 文件)重新编译一遍,当然你可以傻傻的 Rebuild All。
----------------------------------------------------------------------------------------------
AfxMessageBox()和MessageBox()的区别 & PCH预编译头文件(201...
----------------------------------------------------------------------------------------------
问:AfxMessageBox()和MessageBox()的区别?
答:带Afx的是全局函数,可以在程序任何地方使用,不带的是CWnd的子函数,只能在CWnd窗口类对象里面使用
附: int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );
----------------------------------------------------------------------------------------------
因为看到*.pch文件很大,于是便把它给删了,编译的时候出现这样的问题 Cannot open precompiled header file: ''Debug/6_6消息对话框.pch'': No such file
网上找了一下解决办法,其实很简单,只需要让编译器生成一个pch文件就可以了。也就是说把 Stdafx.cpp(即指定/Yc的那个cpp文件)重新编译一遍,当然你可以傻傻的 Rebuild All。
----------------------------------------------------------------------------------------------
今天关于为什么System.Windows.MessageBoxImage具有相同值的枚举子项?的分享就到这里,希望大家有所收获,若想了解更多关于.net – 为什么System.Windows.MessageBoxImage具有相同值的枚举子项?、.net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作、AfxMessageBox () 和 MessageBox () 的区别 & PCH 预编译头文件(201...、AfxMessageBox()和MessageBox()的区别 & PCH预编译头文件(201...等相关知识,可以在本站进行查询。
本文标签: