这是表示什么意思 Kes.Up|Keys.Shift?

mxldream 2007-03-05 07:28:14
看一段代码, 发现在在KeyDown事件中有如下代码:


case Keys.Up:
...
case (Keys.Up | Keys.Shift):
...

这个(Keys.Up | Keys.Shift)是表示什么键? 反正不是表示Shift和Up一块按下.
...全文
327 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyu170 2007-03-05
  • 打赏
  • 举报
回复
KeyDown事件是当按下某键时发生,如果是同时按下Shift+Up是触发两次事件呀!
|是按位或
我觉得应该是把Keys.Up和Keys.Shift的枚举直进行按位或后得到的数值
lizhizhe2000 2007-03-05
  • 打赏
  • 举报
回复
楼上兄弟正解!
lldwolf 2007-03-05
  • 打赏
  • 举报
回复
像control, shift这种键的键值在Keys枚举中的值都是大于0xffff的, 而普通键的键值都小于0xffff, 这样两者的或操作就表示两键同按

switch (e.KeyData)
{
case Keys.Up:
MessageBox.Show("No Shift");
break;
case Keys.Up | Keys.Shift:
MessageBox.Show("Shift");
break;
}
}
lizhizhe2000 2007-03-05
  • 打赏
  • 举报
回复
Keys.Up是一个表示方法,如:00001
Keys.Shift 是一个表示方法 如:00010

| 表示两者相与 结果就是 00011,表示两者同时按下
lizhizhe2000 2007-03-05
  • 打赏
  • 举报
回复
同时按下!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧