.NET,并在按下键盘按钮时“知道”

时间:2009-08-16 12:39:18

标签: c# winforms c#-2.0 keyboard-events

我正在用C#编写一个程序,我想知道用户何时按下\按下键盘按钮(目前:键盘上的1-9个按钮)。
我该怎么做?

4 个答案:

答案 0 :(得分:4)

Control.KeyPress事件(以及相关的KeyDownKeyUp)应该做您需要的事情。只需为表单中所需的事件处理程序定义一个事件处理程序:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show("Key pressed: " + e.KeyChar);
}

该链接下的MSDN页面有一个更广泛的示例,用于处理“特殊”键(您需要使用KeyPressKeyDown)。

如果你想在焦点不在你的表单上时捕获键,那完全是另一回事,但我不认为这是你想要捕获1-9键的情况。不是典型的全球热键:)

答案 1 :(得分:2)

不要忘记将 KeyPreview 属性设置为true,否则表单上的其他控件(如果表单上有其他控件)将在之前收到事件(如果他们有焦点)形式得到它。

答案 2 :(得分:0)

将函数挂钩到表单的OnKeyUp事件。 see here

private void form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if ((e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) || (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9))

    {
        //Do something
    }
}

答案 3 :(得分:0)

您搜索的内容是2个事件KeyDown和KeyUp。

KeyUp是按下“按键”并且用户抬起手指的时候。 KeyDown是另一个事件。

只需要一张新表格。转到事件(按F4),您将找到KeyDown和Up。

    private void maskedTextBox1_KeyDown_1(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)

等等:D