日期:2014-05-18  浏览次数:21489 次

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值