我现在想用方向键实现控制,触发KEYDOWN事件,并且只触发一次KEYDOWN事件,避免反复触发
除了方向键其它的字母键我已经可以实现这个功能,但方向键好像有点特殊
求达人解决,有两点。。
1、方向键触发KEYDOWN事件
2、只触发一次KEYDOWN事件
希望能贴上代码,谢谢!

解决方案 »

  1.   

    方向键触发不了KEYDOWN 事件
    用KEYUP事件吧
      

  2.   

    int flag = 0;
             private void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                if (flag == 0)
                {
                    MessageBox.Show(e.KeyCode.ToString());
                    flag++;
                }
            }
      

  3.   

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    switch (e.KeyCode)
    {
    case Keys.Up: { break; }
    case Keys.Down: { break; }}
    }记录标识bool flag=false;
      

  4.   

    晕,我KEYUP事件要触发别的事情啊,,,
      

  5.   

    好像SWITCH不能直接触发方向键呢??能说得详细些吗谢谢!
      

  6.   

    KeyDown 和 KeyUp 事件可识别标准键盘上的大多数控制键。其中包括功能键 (F1-F16)、编辑键(HOME、PAGE UP、DELETE 等等)、定位键(RIGHT、LEFT、UP 和 DOWN ARROW)和数字小键盘上的键。上面的代码没什么问题。 private void Form1_KeyDown(object sender, KeyEventArgs e)
     {
         switch (e.KeyCode)
         { 
             case Keys.Up:
             case Keys.Down:
             case Keys.Right:
             case Keys.Left:
                 MessageBox.Show(e.KeyCode.ToString());
                 break;
             default: break;
         }
     }
      

  7.   

    你如果在界面上有多BUTTON控件的话肯定触发不了的,而且我要求之触发一次啊
      

  8.   

    触发一次只需要在事件方法下注销事件就可以了this.keydown-=new .....