我目前正在使用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
答案 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