请问winform中拖入的控件如何获取方向键事件

tian_1 2010-01-03 02:32:06
我在一个最简单的form里拖入一个button,我添加在form和button上的_KeyDown和_KeyUp和_KeyPress事件在使用上下左右四个方向键是都无法被触发。我在form上又override了OnKeyDown(KeyEventArgs e),依旧无法捕获,

请各位朋友帮忙。多谢!
...全文
306 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianliang1 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 tian_1 的回复:]
多谢tianliang1
[/Quote]
不谢,及时结贴吧!!!
tian_1 2010-01-03
  • 打赏
  • 举报
回复
多谢tianliang1
tianliang1 2010-01-03
  • 打赏
  • 举报
回复
这些功能键不能被随便获取的。。。如果要用他们必须重写方法如:
 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 true;
}
tian_1 2010-01-03
  • 打赏
  • 举报
回复
难道大家都没有这个问题?
tian_1 2010-01-03
  • 打赏
  • 举报
回复
窗体的KeyPreView属性一直都设置为true的,我只是想让控件能捕获方向键的事件,大家有何良策?
  • 打赏
  • 举报
回复
[Quote=引用楼主 tian_1 的回复:]
我在一个最简单的form里拖入一个button,我添加在form和button上的_KeyDown和_KeyUp和_KeyPress事件在使用上下左右四个方向键是都无法被触发。我在form上又override了OnKeyDown(KeyEventArgs e),依旧无法捕获,

请各位朋友帮忙。多谢!
[/Quote]

form 或者 button要触发键盘事件,他们必须有焦点才行

如果你窗体上有TextBox,默认焦点是在它身上

将窗体的KeyPreView属性设置为true试试
tian_1 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yangglemu 的回复:]
确保如下添加了事件处理委托,及委托对应的函数

button.click+=new eventhandle(button_click);

private void button_click(object sender,eventargs e){}
[/Quote]

我只是要捕获 键盘事件 ,不要添加button.click+=new eventhandle(button_click);的。
对于button,我加的是 this.button1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.button1_KeyDown);
_KeyDown,_KeyUp, _KeyPress 都可以捕获方向键之外普通键(如A/B/C……)等,就是无法捕获四个方向键事件
tian_1 2010-01-03
  • 打赏
  • 举报
回复
补充:form的KeyPreview属性也设成了true的,依旧捕获不到。
还把这篇文章(http://www.codeproject.com/KB/cs/ProcessKeyPreview.aspx)的代码贴近了form里,依然无效 .

请各位帮忙
  • 打赏
  • 举报
回复
确保如下添加了事件处理委托,及委托对应的函数

button.click+=new eventhandle(button_click);

private void button_click(object sender,eventargs e){}
fuchanglove 2010-01-03
  • 打赏
  • 举报
回复
通过获得输入键盘上的键值让button的x,y的值变化就可以了!具体代码就不给你了
tian_1 2010-01-03
  • 打赏
  • 举报
回复
多谢各位,新年快乐

111,121

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧