大概的问题这样的:
当 当前的焦点为自我写的控件时,点击键盘的方向键,即上、下、左、右不改变焦点。
但使用了很多方法都无法实现。希望大家帮忙解答下。

解决方案 »

  1.   


            protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                if (keyData == Keys.Left || keyData== Keys.Up || keyData== Keys.Right|| keyData== Keys.Down)
                    return true;
                else
                    return base.ProcessCmdKey(ref msg, keyData);
            }
      

  2.   

    谢谢楼上各位的解答,焦点的问题是解决了,可是屏蔽了就不能响应对应的KeyDown等消息了啊,
    能否不改变焦点,又能产生事件呢
      

  3.   

    你可以把2楼的代码加几行试试,protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
    switch(keyData)
    {
    case Keys.Left:
       YourControls.Left+=1;return true; break;
    case Keys.Up:
       YourControls.Top-=1;return true; break;
    case Keys.Right:
       YourControls.Left-=1;return true; break;
    case Keys.Down:
       YourControls.Top+=1;return true; break;
    default :
        return base.ProcessCmdKey(ref msg, keyData);
    break;
    }你将就这改下试试。