C# 在ALT+;按键已按下

C# 在ALT+;按键已按下,c#,winforms,keyboard,user-input,C#,Winforms,Keyboard,User Input,当ALT键与.NET中的另一个键同时按下时,如何处理KeyDown事件?类似于: private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Alt) { e.Handled = true; // ,,, } } 该类为键修饰符定义了多个属性-是其中之一,如果按下alt键,则将计算为true。这是最终有效的代

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

类似于:

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

该类为键修饰符定义了多个属性-是其中之一,如果按下alt键,则将计算为
true

这是最终有效的代码

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

if(e.KeyCode>=Keys.A&&e.KeyCode我捕获alt和down或up箭头键以增加numericUpDown控件的值。(我使用alt键+down/up键,因为此表单也有datagridview,我希望down/up键在该控件上正常工作。)

private void frmAlzCalEdit\u KeyDown(对象发送方,KeyEventArgs e)
{
if(e.Alt&&e.KeyCode==Keys.Down)
{
如果(nudAlz.Value>nudAlz.Minimum)nudAlz.Value--;
}
if(e.Alt&&e.KeyCode==Keys.Up)
{
如果(numdalz.Value
为表单创建一个KeyUp事件,或者像我一样使用一个库来获取一个GlobalHook,这样你就可以在表单外按这些键

例如:

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


                    }
                }

问题是,我只得到Alt键,而不是使用ALT@Jedi,你应该为这两种语言分别获取(单独的)事件。这个链接给了我一个想法。Thankshow你的西班牙语和法语用户会喜欢这样吗?特殊字符是否使用非英语语言(例如ê)介于A-Z键之间?我想答案是否定的,但不确定。很抱歉撞到一篇旧帖子,但我只是偶然发现了它。你是说英国人不使用数字和标点符号?说真的,这个答案不正确——几乎所有人都是这样。
    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++;
        }

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


                    }
                }