C#键盘事件的问题

路过的菜鸟 2014-10-31 10:13:00
各位好:
我现在在做一个项目,要求只要程序在最前时,只要按住键盘的方向键,界面的textbox的数字就会自己加去。

我的问题是如何捕捉键盘消息并判断是哪个键,还要判断键什么时候按下什么时候松开,按下松开触发哪些事件......

以上。
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-11-01
  • 打赏
  • 举报
回复
处理Form的KeyPress,Form的KeyPreview设置为true就可以了。
路过的菜鸟 2014-11-01
  • 打赏
  • 举报
回复
引用 5 楼 lin202 的回复:
[quote=引用 3 楼 caozhy 的回复:] 处理Form的KeyPress,Form的KeyPreview设置为true就可以了。
你好,你的方法好像可以,但是我按方向键没有触发事件,按其它按键就可以。是不是哪里还要设置一下啊?[/quote] MSDN上面是这样说的: 您不能获取或设置以下键: Tab 键。 Insert 和 Delete。 Home。 End。 Page Up 和 Page Down。 F1-F2。 Alt。 箭头键。
路过的菜鸟 2014-11-01
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
处理Form的KeyPress,Form的KeyPreview设置为true就可以了。
你好,你的方法好像可以,但是我按方向键没有触发事件,按其它按键就可以。是不是哪里还要设置一下啊?
路过的菜鸟 2014-11-01
  • 打赏
  • 举报
回复
引用 2 楼 u011672494 的回复:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up)
            {
                textBox1.Text = (Convert.ToInt32(textBox1.Text) + 1).ToString();
            }
            if (e.KeyCode == Keys.Down)
            {
                textBox1.Text = (Convert.ToInt32(textBox1.Text) - 1).ToString();
            }
        }
Textbox的值随方向上下键加减
你好,我要效果不是这样,其实我要的有点像全局热键的效果吧,但是全局热键好像没有keypress只能判断哪个键按了而已,还有其它办法吗?
有时想起 2014-10-31
  • 打赏
  • 举报
回复

private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up)
            {
                textBox1.Text = (Convert.ToInt32(textBox1.Text) + 1).ToString();
            }
            if (e.KeyCode == Keys.Down)
            {
                textBox1.Text = (Convert.ToInt32(textBox1.Text) - 1).ToString();
            }
        }
Textbox的值随方向上下键加减
有时想起 2014-10-31
  • 打赏
  • 举报
回复
直接用numricupdowm控件就行了。

110,546

社区成员

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

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

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