读书人

C#里怎么检测用户按上按键

发布时间: 2012-09-03 09:48:39 作者: rapoo

C#里如何检测用户按下按键
如题。在C#里如何检测用户按下按键

[解决办法]
如果是焦点在某一窗体上的按键可以 override ProcessCmdKey 方法,否则 键盘钩子
参考 http://www.cnblogs.com/hocylan/archive/2008/01/14/1038390.html
[解决办法]
如果是本进程,可以重载WndProc或者使用消息筛选器IMessageFilter,如果是全局的,用钩子
[解决办法]
把窗体的KeyPreview属性设为真(在窗体上注册并打开键盘按键)

在窗体的KeyDown事件中即可获取。
[解决办法]
首先,你得把KeyPreview属性设置为true
然后再给窗体添加KeyDown或KeyPress事件
要想捕获键盘的输入首先该窗体得获取输入的焦点,也就是说必须是活动的当前窗体,之后你按键盘的输入才会被捕获比如,我给把KeyPreview设置为true然后添加了KeyDown事件:添加如下代码:

if (Keys.Control == e.Modifiers&&Keys.A==e.KeyCode)
{
MessageBox.Show("Ctrl + A");
}
运行程序,然后用“鼠标点击下窗体”,让他为当前的活动窗体,然后按下Ctrl+A 就会弹出对话框了。希望对你有帮助。
[解决办法]
在form1的keydown或者可以press事件中,写判断用户按键的代码:
if(e.keycode== xxx ) //xxx代表键入的键值,具体可以查百度或者msdn
{
do what you want to do...
}
[解决办法]
给每个button 按钮,赋予tag值 在点击时间类型,将具体button对象转换为BUTTON类,获取tag值

读书人网 >C#

热点推荐