C# 如何响应键盘的上下左右键

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:49:39
我的界面里有滚动条,当然也添加了Scroll响应函数。
我发现,Scroll函数会默认响应键盘的上下左右键,
所以给界面添加KeyDown KeyUp 函数等,不能响应上下左右键。
我想按下上下左右的时候,移动我自己的绘图元素,所以要响应这四个按键才行。
所以麻烦问问,可以怎样实现?多谢。
窗体响应键盘事件是默认的。
当设置了KeyPreview 为True之后,窗体上的控件会相应的响应键盘事件。
滚动条也属于窗体的控件,所以也会响应。可以把滚动条的键盘响应函数的句柄设为True,避免进行响应。
主要是我的问题问得不清楚。
我的工程是窗体上的控件库里想处理键盘响应事件。
嗯,先把分送了。

一个控件都会有三个事件,分别是KeyDown,KeyPress和KeyUp其中,KeyDown对应(键盘或者鼠标)按下而KeyUp则对应松开,或者说弹起来。而KeyPress则在你按下并松开按键的时候,会先后触发KeyDown事件和KeyUp事件;
例如KeyDown我需要响应键盘的“上”:
private void txtRemark_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
//codes what you want
}
}

我试过了,可以的啊,你是不是没有把窗体的 KeyPreview 属性设为True

是不是没有获得焦点

有文本框或按钮之类的把焦点抢走了..?

------------
你的问题我看的有点迷糊..

KeyPreview 属性设为True
这个是键盘在窗体注册的属性

楼主你也可以用ascii码去实现
键盘上的每一个键都对应一个ascii码

学习