在vb.NET中将按键转换为文本框
我目前正在使用Visual Basic 2010,正在制作一个基本计算器。它应该能够识别来自numpad的击键,并将其视为计算器上用于数字和运算的按钮。然而,我无法让它工作 例如,当按下numpad 4时,我希望我的程序在命令行中显示数字4,我正在尝试这样做:在vb.NET中将按键转换为文本框,vb.net,visual-studio-2010,keypress,Vb.net,Visual Studio 2010,Keypress,我目前正在使用Visual Basic 2010,正在制作一个基本计算器。它应该能够识别来自numpad的击键,并将其视为计算器上用于数字和运算的按钮。然而,我无法让它工作 例如,当按下numpad 4时,我希望我的程序在命令行中显示数字4,我正在尝试这样做: Private Sub BeforeLoad(sender As System.Object, e As System.EventArgs) Handles MyBase.Load, Me.KeyDown Me.KeyPr
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
Private-Sub-BeforeLoad(发送方作为System.Object,e作为System.EventArgs)处理MyBase.Load、Me.KeyDown
Me.KeyPreview=True
如果Keys.NumPad4=True,则
如果(输入并同时显示txtDisplay.Text“0”)或点,则
txtDisplay.Text+=btn4.Text
其他的
txtDisplay.Text=btn4.Text
输入=真
如果结束
如果结束
端接头
但是,当我启动程序并尝试单击numpad4时,什么也没有显示。我们将非常感谢您对此事的任何帮助。[已解决]
我的另一个问题是enter按钮在numpad上返回一个值“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
Case键。输入
EnterPress(btnEqual)
专用子进站按钮(btn As按钮)
“#输入按钮
如果txtDisplay.Text.Length为0,则
计算器()
Operation=String.Empty
点=假
如果结束
端接头
我的全部代码可以在这里找到:
以下是“我的相等”按钮的代码:
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
Private Sub-Master(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理btnEqual。单击
如果ModOp=True,则
Num2=Val(txtDisplay.Text)
txtDisplay.Text=Num1 Mod Num2
ElseIf txtDisplay.Text.Length 0然后
计算器()
Operation=String.Empty
点=假
如果结束
端接头
看来我找到了两种解决方案
1) 在“属性”窗口中按钮文本中的数字前添加“&”符号
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
您是否已在代码中设置断点并逐步查看它正在执行的操作?您是否使用WinForms?您不能在为
表单加载设置的方法中订阅键下键
。通过事件列表重新创建事件,然后检查如果e.KeyCode=Keys.numpa4,那么
。我在几周前回答了一个类似的问题:@MaCron:我不知道断点是什么,因为我真的不知道我在做什么,所以不。@GibralterTop:是的@视觉文森特:谢谢你的回答,然而,出于某种原因,这对我不起作用。