C# 为什么要按Ctrl+;M不工作了?
我希望我的应用程序响应Ctrl+M,它将执行以下操作:C# 为什么要按Ctrl+;M不工作了?,c#,winforms,C#,Winforms,我希望我的应用程序响应Ctrl+M,它将执行以下操作: if (e.KeyCode == System.Windows.Forms.Keys.M && e.KeyCode == System.Windows.Forms.Keys.RControlKey) 我尝试单击Ctrl+M(我尝试了左键和右键),它在if上的断点处停止,但从未进入。为什么不呢?你所做的没有意义: e.KeyCode是一个枚举值,一次只能保存一个值,枚举值不能同时为Keys.M和Keys.RCont
if (e.KeyCode == System.Windows.Forms.Keys.M
&& e.KeyCode == System.Windows.Forms.Keys.RControlKey)
我尝试单击Ctrl+M(我尝试了左键和右键),它在
if
上的断点处停止,但从未进入。为什么不呢?你所做的没有意义:
e.KeyCode
是一个枚举值,一次只能保存一个值,枚举值不能同时为Keys.M
和Keys.RControl
(1)
Windows将控件(和其他特殊键)作为修改器处理,正确的方法如下:
if(e.KeyCode == Keys.M && e.Control) {
或
(1) (不包括
标志
,我知道键
被标记为标志
,但我尽量让事情简单化)看看这句话。KeyCode
一次可以等于两个不同的值吗?用e.KeyCode替换e.KeyCode==whatever&whatever==whatever上有一个非常相似的帖子,所以Ctrl+M
有ASCII
code十进制13
(=code ofM
减64)。您将获得与“回车”相同的代码或Enter
。枚举System.Windows.Forms.Keys.Enter
和System.Windows.Forms.Keys.Return
都有值13
。
if(e.Keycode == Keys.M && (e.Modifiers & Keys.RControl) == Keys.RControl) {