在vb.NET中将按键转换为文本框

时间:2016-04-27 16:13:15

标签: vb.net visual-studio-2010 keypress

我目前正在使用Visual Basic 2010并正在制作基本计算器。它应该识别来自小键盘的击键并将它们视为我用于数字和操作的计算器上的按钮。但是,我无法让它发挥作用。

例如,我希望我的程序在按下numpad 4时在命令行中显示数字4,并尝试这样做:

    Private Sub BeforeLoad(sender As System.Object, e As System.EventArgs) Handles MyBase.Load, Me.KeyDown
    Me.KeyPreview = True
    If Keys.NumPad4 = True Then
        If (Input AndAlso txtDisplay.Text <> "0") Or Point Then
            txtDisplay.Text += btn4.Text
        Else
            txtDisplay.Text = btn4.Text
            Input = True
        End If
    End If
End Sub

但是,当我启动程序并尝试单击numpad4时,没有任何显示。对此事的任何帮助将不胜感激。 [解决

我的另一个问题是输入按钮在小键盘上返回值“1”,而不是计算我想要的答案。

Case Keys.Enter
EnterPress(btnEqual)        

Private Sub EnterPress(btn As Button)
    '# Enter Button
    If txtDisplay.Text.Length <> 0 Then
        CalculateTotals()
        Operation = String.Empty
        Point = False
    End If
End Sub

我的代码可以在这里找到:http://pastebin.com/dsMCNy3i

以下是我的等于按钮的代码:

    Private Sub Master(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEqual.Click
    If ModOp = True Then
        Num2 = Val(txtDisplay.Text)
        txtDisplay.Text = Num1 Mod Num2
    ElseIf txtDisplay.Text.Length <> 0 Then
        CalculateTotals()
        Operation = String.Empty
        Point = False
    End If
End Sub

1 个答案:

答案 0 :(得分:1)

看来我找到了两个解决方案。

1)放一个&#39;&amp;&#39;属性窗口中按钮文本中的数字前面的符号。

2)这段代码对我有用:

    Private Sub Keystrokes(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    Select Case e.KeyCode
        Case Keys.NumPad1
            btn1.PerformClick()
        Case Keys.NumPad2
            btn2.PerformClick()
    End Sub