我正试图把键盘管理的形式,我的计划,以建立快捷方式。所以我宣布
public Form1()
{
InitializeComponent();
this.KeyDown += Form1_KeyDown;
}
那么在我的程序中,
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
// My code
}
}
但它不工作,我一直按向下键,什么都没有!我停在:
if (e.KeyCode == Keys.Down)
从来都不会。唯一起作用的是空格键,就好像我在点击最后一个使用的按钮。谢谢你的建议
1条答案
按热度按时间ivqmmu1c1#
制作一些热键快捷方式的一种方法是实现
IMessageFilter
,它为整个表单安装PreFilterMessage
钩子,而不管哪个控件有焦点。在构造函数中,添加消息过滤器,并将其设置为在窗体释放时移除。
在该方法中,筛选Win32键按下消息。
然后为您感兴趣的快捷键实现自定义热键检测器。