关于在c#winform中重写ProcessCMDKey所以我写了protectedoverrideboolProcessCmdKey(refMessagemsg,KeyskeyData)这个函数会在我点击键盘左侧的Ctrl时调用,keyData的值为keyData=LButton|Shift键|控制这是为什么?谢谢!调试器对Keys枚举的声明感到困惑。看起来像这样:[Flags]publicenumKeys{LButton=1,ShiftKey=0x10,ControlKey=0x11,Control=0x20000,//Andlotsmore}打开[Flags]属性后,调试器可视化工具将尝试显示keyData每个位值。您按下了值为0x11的控制键Keys.ControlKey。控制标志因此打开,因此keyData=0x20011。因此调试器将0x20011解释为位并使其成为0x20000|0x00010|0x00001。它变成了“LButton|ShiftKey|Control”。没有比在调试器表达式中使用(int)keyData更智能的好方法了。基本问题是enum上的[Flags]属性,只是稍微合适,但绝大多数Keys的enum值都不是flag值。以上就是C#学习教程:关于c#winform中ProcessCMDKey分享的所有内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
