【问题标题】:Get the non-ModifierKey c#获取非ModifierKey c#
【发布时间】:2015-09-19 00:22:49
【问题描述】:

我尝试从 pressKey 事件中获取非修饰键。 要获得 ModifierKey 我使用:

if (Control.ModifierKeys == Keys.Control)

但是我如何获得非修饰键? 不仅仅是一个特定的键。但所有组合 a-z 0-9。

我想知道是否按下了CTRL+A 或CTRL+5 或CTRL+B 或任何组合。

【问题讨论】:

    标签: c# ctrl


    【解决方案1】:

    Control 不提供列出所有按下的键的属性。您需要在活动中领取它,例如KeyPress

    【讨论】:

    • 代码甚至在 KeyPress 中。 if (Control.ModifierKeys == Keys.Control)
    【解决方案2】:

    如果您尝试确定按键是字母还是数字,您可以执行类似的操作

      private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (Char.IsLetterOrDigit(e.KeyChar))
                {                  
                    //do A
                }
                else
                {
                    //do B
                }
            }
    

    但是如果你想按下哪个键,你可以处理 KeyDown 事件,它的 KeyEventArgs 将有哪个键被按下。

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                Keys keyPressed = e.KeyCode;
            }
    

    【讨论】:

    • 谢谢。当我将代码移动到 KeyDown 时,它可以工作。以前一直在使用 Keypess。在这种情况下,这不是一个好主意。当然,它只会选择 CTRL,因为它是第一个被按下的键。但是,如果我使用 KeyDown,我会得到最后一个键是如何关闭的。 Witch 将是非修饰键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2015-08-09
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多