在给winform窗体添加的快捷键功能由于手速太快而导致了失效,比如我给我的窗体程序添加了一个Ctrl+F的检索功能,而我在快速点击Ctrl+F的时候会发现这个快捷键的功能失效了,检索的窗口没有显示出来。调查结果和解决方案如下:
一开始我在给KeyUp事件里判断快捷键的代码是
1 // ctrl + F key 2 if (e.KeyCode == Keys.Control && e.KeyCode == Keys.F) 3 { 4 ... 5 }
修改后:
1 // ctrl + F key 2 if (e.Modifiers == Keys.Control && e.KeyCode == Keys.F) 3 { 4 ... 5 }
用KeyEventArgs.Modifiers来判断Control键的输入,手速再快也没事。
Modifiers是特定修饰符。在MSDN的文档描述Modifiers的用法时说:若要确定是否按下Ctrl,Shift,Alt键请使用Modifiers属性。