繁体   English   中英

按下ALT + KEY时处理KeyDown事件

[英]Handle the KeyDown Event when ALT+KEY is Pressed

当与.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))
    {
        // ...
    }
}

就像是:

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

这是最终工作的代码

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

我捕获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)
                    {     


                    }
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM