C# .NET,以及;“知道”;当按下键盘按钮时

C# .NET,以及;“知道”;当按下键盘按钮时,c#,winforms,c#-2.0,keyboard-events,C#,Winforms,C# 2.0,Keyboard Events,我正在用C#编写一个程序,我想知道用户何时按下键盘按钮(目前:键盘上有1-9个按钮)。 我该怎么做?活动(以及相关的和)应该满足您的需要。只需为表单中所需的事件处理程序定义一个事件处理程序: private void Form1_KeyPress(object sender, KeyPressEventArgs e) { MessageBox.Show("Key pressed: " + e.KeyChar); } 链接下的MSDN页面有一个更广泛的示例,用于处理“特殊”键(您需要使用

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

活动(以及相关的和)应该满足您的需要。只需为表单中所需的事件处理程序定义一个事件处理程序:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show("Key pressed: " + e.KeyChar);
}
链接下的MSDN页面有一个更广泛的示例,用于处理“特殊”键(您需要使用
KeyPress
KeyDown

如果您想在焦点不在表单上的情况下捕获密钥,那完全是另一回事,但我认为情况并非如此,因为您想捕获密钥1-9。不是典型的全局热键:)

事件(以及相关的和)应该执行您需要的操作。只需为表单中所需的事件处理程序定义一个事件处理程序:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show("Key pressed: " + e.KeyChar);
}
链接下的MSDN页面有一个更广泛的示例,用于处理“特殊”键(您需要使用
KeyPress
KeyDown


如果您想在焦点不在表单上的情况下捕获密钥,那完全是另一回事,但我认为情况并非如此,因为您想捕获密钥1-9。不是典型的全局热键:)

将函数挂接到表单的OnKeyUp事件。

private void form1\u KeyUp(对象发送方,System.Windows.Forms.KeyEventArgs e)
{
if((e.KeyCodeKeys.NumPad9)| |(e.KeyCodeKeys.D9))
{
//做点什么
}
}

将函数与表单的OnKeyUp事件挂钩。

private void form1\u KeyUp(对象发送方,System.Windows.Forms.KeyEventArgs e)
{
if((e.KeyCodeKeys.NumPad9)| |(e.KeyCodeKeys.D9))
{
//做点什么
}
}

您搜索的是两个事件KeyDown和keydup

KeyUp是指按下一个键,用户抬起手指。 KeyDown是另一个事件

换一种新的形式。转到事件(按F4),您将找到向下键和向上键

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

依此类推:您搜索的是两个事件KeyDown和keydup

KeyUp是指按下一个键,用户抬起手指。 KeyDown是另一个事件

换一种新的形式。转到事件(按F4),您将找到向下键和向上键

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

依此类推:D

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

不要忘记将KeyPreview属性设置为true,否则表单上的其他控件将接收事件(如果窗体上有其他控件)将接收事件(如果有焦点)在窗体获取它之前。

您没有提供足够的信息。是GUI还是控制台应用程序?如果是GUI、WPF或Windows窗体?您没有提供足够的信息。是GUI还是控制台应用程序?如果是GUI、WPF或Windows窗体?按键事件不是由非字符键引发的;但是,非字符键会引发向下键和向上键事件。1-9是字符键,但这正是他所要求的。我的错,1-9在我看来是非字符键按键事件不是由非字符键引发的;但是,非字符键确实会引发KeyDown和keydup事件。1-9是字符键,但这正是他所要求的。我的错,1-9在我看来是非字符键s