C# 检测控制移位和W

C# 检测控制移位和W,c#,keypress,C#,Keypress,我可以使用 if (Keys.W == (Keys)vkCode && Keys.Control == Control.ModifierKeys) 但是,在添加时,它似乎没有正确检测到 if (Keys.W == (Keys)vkCode && Keys.Control == Control.ModifierKeys && Keys.Shift= Control.ModifierKeys) 我需要做什么特别的事

我可以使用

 if (Keys.W == (Keys)vkCode &&
     Keys.Control == Control.ModifierKeys)
但是,在添加时,它似乎没有正确检测到

 if (Keys.W == (Keys)vkCode &&
     Keys.Control == Control.ModifierKeys &&
     Keys.Shift= Control.ModifierKeys)

我需要做什么特别的事情来检查是否有3个键被按下而不是2个键?

ModifierKeys属性是位掩码,因此需要对
控件和
Shift
值执行位或

 if (Keys.W == (Keys)vkCode &&
     (Keys.Control | Keys.Shift) == Control.ModifierKeys)

额外的一位看起来像一个非常糟糕的打字错误。你的意思是
Keys.Shift==
而不是
Keys.Control=
?对不起,我试图将最后一个加粗&&为了强调我添加的位,我所做的只是让它变得更糟:/sorry在这种情况下,最好的方法是使用MessageBox.Show(例如KeyChar.toString());在按键事件中,您可以按下这些组合并查看输出内容,我不确定,但它将显示一个整数代码。