按下ALT + KEY时处理KeyDown事件

当与.NET中的另一个键同时按下ALT键时,如何处理KeyDown事件?

KeyEventArgs类为键修饰符定义了几个属性 – Alt是其中之一,如果按下alt键,它将计算为true

 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Alt && e.KeyData != (Keys.RButton | Keys.ShiftKey | Keys.Alt)) { // ... } } 

这是最终工作的代码

 if (e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z && e.Alt){ //Do SomeThing } 

就像是:

  private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Alt) { e.Handled = true; // ,,, } } 

我捕获alt和向下或向上箭头键以增加numericUpDown控件的值。 (我使用alt键+向下/向上键,因为这个表单也有一个datagridview,我想要向下/向上键在该控件上正常运行。)

  private void frmAlzCalEdit_KeyDown(object sender, KeyEventArgs e) { if (e.Alt && e.KeyCode == Keys.Down) { if (nudAlz.Value > nudAlz.Minimum) nudAlz.Value--; } if (e.Alt && e.KeyCode == Keys.Up) { if (nudAlz.Value < nudAlz.Maximum) nudAlz.Value++; } } 

为您的表单创建一个KeyUp事件或使用像我这样的库来获取GlobalHook,以便您可以在表单外按这些键。

例:

  private void m_KeyboardHooks_KeyUp(object sender, KeyEventArgs e) { if ( e.KeyCode == Keys.Alt || e.KeyCode == Keys.X) { } }