看一段代码, 发现在在KeyDown事件中有如下代码:
case Keys.Up:
...
case (Keys.Up | Keys.Shift):
...这个(Keys.Up | Keys.Shift)是表示什么键? 反正不是表示Shift和Up一块按下.

解决方案 »

  1.   

    Keys.Up是一个表示方法,如:00001
    Keys.Shift 是一个表示方法 如:00010| 表示两者相与 结果就是 00011,表示两者同时按下
      

  2.   

    像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;
                }
            }
      

  3.   

    KeyDown事件是当按下某键时发生,如果是同时按下Shift+Up是触发两次事件呀!
    |是按位或 
    我觉得应该是把Keys.Up和Keys.Shift的枚举直进行按位或后得到的数值