键盘输入与选择案例

时间:2013-08-30 20:16:24

标签: vb.net keyboard

我正在尝试制作一个基本的计算器,我的按钮的编号为0-9,所有的数学符号。我想将我的键盘(小键盘)按钮链接到它们,我做了一些搜索,并看到一些带有'if'语句的例子。 是否可以通过精选案例执行此操作? 哪个Key事件最适合处理键盘输入? KeyUp,KeyDown还是KeyPress? KeyPress给出了'='不是有效运算符的错误。

2 个答案:

答案 0 :(得分:1)

Select Case当然可以做到这一点 对此最好的关键事件可能是KeyDown,因此一旦用户按下该键,该按钮就会被点击。 (如果你使用KeyUp,它会等待他们释放钥匙,这可能不是他们所期望的。)
这可能是一个例子:

Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    Select Case e.KeyCode
        Case Keys.NumPad1
            Button1.PerformClick()
        Case Keys.NumPad2
            Button2.PerformClick()
        Case Keys.NumPad3
            Button3.PerformClick()
        'Continue adding other keys here'
    End Select
End Sub

您需要更改按钮名称以匹配您的代码 您可能还需要将表单的KeyPreview属性设置为True,以便引发KeyDown事件。 (你可以在设计师那里做到这一点)

答案 1 :(得分:0)

确保在表单的属性中设置了KeyPreview。

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    Select Case e.KeyCode
        Case Keys.NumPad0
            btn0.PerformClick()
        Case Keys.NumPad1
            btn1.PerformClick()
        Case Keys.NumPad2
            btn2.PerformClick()
        Case Keys.NumPad3
            btn3.PerformClick()
        Case Keys.NumPad4
            btn4.PerformClick()
        Case Keys.NumPad5
            btn5.PerformClick()
        Case Keys.NumPad6
            btn6.PerformClick()
        Case Keys.NumPad7
            btn7.PerformClick()
        Case Keys.NumPad8
            btn8.PerformClick()
        Case Keys.NumPad9
            btn9.PerformClick()
    End Select
  End Sub