C# 键盘输入问题

birdthree 2010-09-28 03:44:34
窗口上一旦有了按钮,,
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
int key = e.KeyValue;
MessageBox.Show(key.ToString());
switch (key)
{
case 65: MessageBox.Show(""); break;//上方向



default: break;
}

键盘触发事件 就感觉很烦人,刚开始 根本就不触发了

然后我把按钮弄的没焦点,按了按钮后又不行了

然后我在按钮中设 form1.focus()还是不行

希望有一种好的解决方法 : 窗口上有按钮,但是不妨碍键盘触发事件

...全文
184 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelifei521 2010-09-28
  • 打赏
  • 举报
回复
坐个沙发
lkf181 2010-09-28
  • 打赏
  • 举报
回复
你要做钩子程序吗?
xuld 2010-09-28
  • 打赏
  • 举报
回复
重写 Form 类的Pre Message 方法

在里面处理所有 KeyDown 事件
wuyq11 2010-09-28
  • 打赏
  • 举报
回复
AcceptButton
private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up: { break; }
case Keys.Down: { break; }
// ....
}
}
protected virtual bool ProcessDialogKey(Keys keyData)
jimh 2010-09-28
  • 打赏
  • 举报
回复
From上有个属性,默认为false,设置为true则接收全局(所有属于Form)的键盘事件,这个属性用得少,一时没记住属性名,自己去查一下吧
friedDuck 2010-09-28
  • 打赏
  • 举报
回复
慢了5秒。。。
friedDuck 2010-09-28
  • 打赏
  • 举报
回复
在form1里面加这一句

this.KeyPreview = true;
周药师 2010-09-28
  • 打赏
  • 举报
回复
只要 KeyPreview = true;就會觸發
不知道你什麽意思?

111,129

社区成员

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

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

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