C#中的Numpad键代码

时间:2012-05-16 20:59:29

标签: c# winforms

我使用以下代码来处理小键盘键。

if (e.KeyCode == Keys.NumPad0 || e.KeyCode == Keys.D0)
{
   MessageBox.Show("You have pressed numpad0");
}
if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D1)
{
   MessageBox.Show("You have pressed numpad1");
}

还有其他小键盘键。但是我想知道我怎么能用“+”,“*”,“/”,“ - ”,“。”这个位于小键盘旁边。

提前致谢

4 个答案:

答案 0 :(得分:10)

查看整个Keys enum。您有Keys.MutiplyKeys.Add等等。

请注意Keys.D0 numpad 0,它是非小键盘0。

答案 1 :(得分:4)

" +" ," *" ," /" ,我们可以使用KeyDown事件和" - " ,"。"我们可以使用KeyPress事件。

以下是代码:

private void button1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Add)
        {
            MessageBox.Show("You have Pressed '+'");
        }
        else if (e.KeyCode == Keys.Divide)
        {
            MessageBox.Show("You have Pressed '/'");
        }
        else if (e.KeyCode == Keys.Multiply)
        {
            MessageBox.Show("You have Pressed '*'");
        }
    }
private void button1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == '.')
        {
            MessageBox.Show("You have pressed '.'");
        }
        else if (e.KeyChar == '-')
        {
            MessageBox.Show("You have pressed '-'");
        }
    }

答案 2 :(得分:-1)

我使用switch让我的工作。

我正在制作一个计算器,甚至在目标文本框上创建了一个KeyDown。然后我用了:

switch (e.KeyCode)
{
    case Keys.NumPad1:
        tbxDisplay.Text = tbxDisplay.Text + "1";
    break;
    case Keys.NumPad2:
        tbxDisplay.Text = tbxDisplay.Text + "2";
    break;
    case Keys.NumPad3:
        tbxDisplay.Text = tbxDisplay.Text + "3";
    break;
}

另一件需要考虑的事情是,如果用户随后单击屏幕上的按钮,则焦点将从文本框中丢失,并且键条目将不再起作用。但这很容易用按钮上的.focus()修复。

答案 3 :(得分:-1)

有一种简单的方法可以学习所有的键码,而无需查看手册。

创建一个表单然后去表单的KeyDown事件然后添加这个

private void Form1_KeyDown(object sender, KeyEventArgs e)
   {
      MessageBox.Show(e.KeyCode.ToString());
   }

然后你会得到你在键盘上按下的任意键的名称