C#按键关闭事件多个按键加上控制键
我想识别我的控件的击键。为此,我使用KeyDown事件。我想要检测的击键类型类似于CTRL+A或CTRL+C等等。 (多个键的组合) 现在我已经修改了KeyEventArgs并找到了keysenum。 (一切都很完美,只需使用|和&组合并找到正确的键即可) 例如Shift+A,则KeyData枚举的值为: ShiftKey | Shift | A 但是 当我试着按下控制键(所以控制+A)时,我得到了131137作为响应? 我不知道为什么我没有得到像ControlKey | Control | A(或类似的东西)这样的东西 我已经认识到,如果我尝试使用ist 131137、B ist 131138和C ist 131139等等。。。 所以我认为可以计算出关键点,但我认为应该有更好的解决方案,就像这样 131137-131072=65(对于A)C#按键关闭事件多个按键加上控制键,c#,controls,keydown,C#,Controls,Keydown,我想识别我的控件的击键。为此,我使用KeyDown事件。我想要检测的击键类型类似于CTRL+A或CTRL+C等等。 (多个键的组合) 现在我已经修改了KeyEventArgs并找到了keysenum。 (一切都很完美,只需使用|和&组合并找到正确的键即可) 例如Shift+A,则KeyData枚举的值为: ShiftKey | Shift | A 但是 当我试着按下控制键(所以控制+A)时,我得到了131137作为响应? 我不知道为什么我没有得到像ControlKey | Control | A
我说的对吗,或者这是前面提到的解决方案,还是我误解了一些基本的问题?您可以使用Ctrl、Shift等键。。。在KeyEventArgs对象中使用属性 131072==(int)键。控件 所以 131137(10000000001000001二进制)=(int)(Keys.Control | Keys.A) 你可以放一些这样的东西
private void myControl_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == (Keys.A | Keys.Control)) {
...
}
这个问题可能会有一些帮助,比如//be happy haha:)我如何捕捉F4+S?
private void myControl_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == (Keys.A | Keys.Control)) {
...
}