在 vb.NET 中将按键转换为文本框
Converting a key press to text box in vb.NET
我目前正在使用 Visual Basic 2010 并正在制作一个基本计算器。它应该识别来自数字键盘的击键并将它们视为我计算器上用于数字和操作的按钮。但是,我无法让它工作。
例如,我希望我的程序在按下小键盘 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
但是,当我启动我的程序并尝试单击数字小键盘 4 时,没有任何显示。对此事的任何帮助将不胜感激。 [已解决]
我的另一个问题是输入按钮 returns 小键盘上的值“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) 在属性 window 中按钮文本中的数字前放置一个“&”符号。
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
我目前正在使用 Visual Basic 2010 并正在制作一个基本计算器。它应该识别来自数字键盘的击键并将它们视为我计算器上用于数字和操作的按钮。但是,我无法让它工作。
例如,我希望我的程序在按下小键盘 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
但是,当我启动我的程序并尝试单击数字小键盘 4 时,没有任何显示。对此事的任何帮助将不胜感激。 [已解决]
我的另一个问题是输入按钮 returns 小键盘上的值“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) 在属性 window 中按钮文本中的数字前放置一个“&”符号。
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