我是想用方向键来控制方向的,但方向键不能触发KeyDown事件,我也不知道该怎么办了,希望能解答的详细点,我在线呢。

解决方案 »

  1.   

    谁告诉你方向键不能触发KeyDown事件?方向键不是键啊?
      

  2.   

    try
    protected override bool ProcessDialogKey(Keys keyData)
    {
        switch (keyData)
        {
            case Keys.Left:
                MessageBox.Show("左");
                break;
            case Keys.Right:
                MessageBox.Show("右");
                break;
            case Keys.Up:
                MessageBox.Show("上");
                break;
            case Keys.Down:
                MessageBox.Show("下");
                break;
        }
        return base.ProcessDialogKey(keyData);
    }
      

  3.   

    看不懂  return base.ProcessDialogKey(keyData);
      

  4.   

    private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                MessageBox.Show(e.KeyCode.ToString());
            }运行无任何问题, 上下左右键都能触发
      

  5.   

    如果是form的话,重载这个
    /// <summary>
    /// 决定是否使用特殊键
    /// </summary>
    /// <param name="keyData"></param>
    /// <returns></returns>
    protected override bool IsInputKey(Keys keyData)
    {
    if(keyData == Keys.Up || keyData == Keys.Down || keyData == Keys.Left || keyData == Keys.Right)
    return true;
    else
    return base.IsInputKey(keyData);
    }网上找的
      

  6.   

    huo789你的代码我试过了不起作用的。
    huwei001982一个单独的窗体上可以,但是在我的窗体里就捕捉不到了。
      

  7.   

    你窗体上有其它的控件吧,焦点肯定跑到别的控件上了,不在 Form 上,所以 Form 接收不到事件
      

  8.   

    我现在把方向键改为w,s,a,d就可以了