我希望我的应用程序响应 Ctrl + M 它会做一些事情:
if (e.KeyCode == System.Windows.Forms.Keys.M
&& e.KeyCode == System.Windows.Forms.Keys.RControlKey)
我试图点击 Ctrl + M (我尝试左右 Ctrl 键)它停在{的一个断点处{1}}但永远不会进去。为什么不呢?
答案 0 :(得分:11)
你正在做的事情没有意义:
e.KeyCode
是枚举值,一次只能容纳一个值,枚举值不能同时为Keys.M
和Keys.RControl
(1)。
Windows将Control(和其他特殊键)作为修饰符处理,正确的方法如下:
if(e.KeyCode == Keys.M && e.Control) {
或
if(e.Keycode == Keys.M && (e.Modifiers & Keys.RControl) == Keys.RControl) {
(1)(不计算Flags
,我知道Keys
被标记为Flags
,但我正在努力保持简单)