C#:在文本框的keydown事件中,如何检测当前按下的修饰符+键?
C#:在文本框的keydown事件中,如何检测当前按下的修饰符+键?
我做了以下,但我不太熟悉这些操作符,所以我不确定是否以及我做错了什么。
private void txtShortcut_KeyDown(object sender, KeyEventArgs e) { if (e.Modifiers == (Keys.Alt || Keys.Control || Keys.Shift)) { lbLogger.Items.Add(e.Modifiers.ToString() + " + " + "show non-modifier key being pressed here"); } }
1)我如何检查e是否包含任何修饰键?
根据msdn linkt
private void txtShortcut_KeyDown(object sender, KeyEventArgs e) { if (e.Alt || e.Control || e.Shift)) { lbLogger.Items.Add(e.ToString() + " + " + "show non-modifier key being pressed here"); } }
文档说它是一个按位组合,但你正在做一个逻辑OR。
尝试:
if (e.Modifiers & (Keys.Alt | Keys.Control | Keys.Shift)) { lbLogger.Items.Add(e.Modifiers.ToString() + " + " + "show non-modifier key being pressed here"); }
我认为你可以用e.KeyCode.ToString()获得实际的密钥。