日期:2014-05-20  浏览次数:20705 次

请问c#如何处理键盘的“上/下/左/右”事件?
rt

------解决方案--------------------
参看这两个文章:
(1)http://www.cnblogs.com/4kapple/archive/2009/03/02/1401462.html
(2)http://support.microsoft.com/kb/320584/zh-cn#top
在第一篇文章中给出了两个方法来解决这个问题:
代码如下:
 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
const int WM_KEYDOWN = 0x100;
const int WM_SYSKEYDOWN = 0x104;

if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
{
switch (keyData)
{
case Keys.Down:
this.Text = "Down";
break;

case Keys.Up:
this.Text = "Up";
break;

case Keys.Right:
this.Text = "Right";
break;

case Keys.Left:
this.Text = "Left";
break;
}
}

return base.ProcessCmdKey(ref msg, keyData);

//return base.ProcessCmdKey(ref msg, keyData);
}
重写ProcessCmdKey方法,具体的参考一下第二篇文章。
这样的话就可以实现你要求的功能了