我希望我的应用程序响应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.RControl1)。
Windows 将 Control(和其他特殊键)作为修饰符处理,正确的方法是这样的:
if(e.KeyCode == Keys.M && e.Control) {
或者
if(e.Keycode == Keys.M && (e.Modifiers & Keys.RControl) == Keys.RControl) {
(1)(不算Flags,我知道Keys被标记为Flags,但我试图让事情变得简单)