我希望我的应用程序响应Ctrl+M它会做一些事情:
if (e.KeyCode == System.Windows.Forms.Keys.M
&& e.KeyCode == System.Windows.Forms.Keys.RControlKey)
我尝试单击Ctrl+ M(我尝试了左右Ctrl键),它在断点处停止if
但从未进入。为什么不呢?
你在做什么没有意义:
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
,但我试图让事情变得简单)