【问题标题】:Detecting multiple PageUp/PageDown key presses检测多个 PageUp/PageDown 按键
【发布时间】:2016-01-08 07:18:09
【问题描述】:

我在 WinForms 中有一个 NumericUpDown 控件。向上/向下箭头键将值增加/减少 1。我想映射 PageUp/PageDown 键以获得更大的增量。

Control.KeyPress 事件不会被 PageUp/PageDown 键触发,如果我使用 Control.KeyUp/Control.KeyDown 事件,即使用户按住按键一段时间,该组合也只会触发一次。

如何在长按键期间捕获多个 PageUp/PageDown 按键?

【问题讨论】:

    标签: c# .net winforms keypress


    【解决方案1】:

    说起来很奇怪,但我无法重现此问题。我有一个新的 winform 实例,具有默认属性值的 numericUpDown 控件和 KeyDown 事件处理程序可以完美配合长按键:

    private void numericUpDown1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.PageDown)
                numericUpDown1.Value -= 10;
            else if (e.KeyCode == Keys.PageUp)
                numericUpDown1.Value += 10;
        }
    

    您能否在事件处理程序中提供您的代码? /对不起,我知道我不应该在答案中要求澄清,但我不能写 cmets。/

    【讨论】:

    • 啊,我的实现只在 KeyDown 和 KeyUp 都匹配同一个键的情况下操纵了这个值。您的示例确实有效。
    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2019-12-07
    • 2010-12-06
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多