做了一个计算机,但是只可以以鼠标点击数字输入,不可以以键盘输入,应该怎么解决?

shb0514 2004-09-18 10:09:50
0-9建立的是一个按钮数组,代码如下,请指教加入怎么样的代码可以从键盘输入相应的数字?
代码:
Option Explicit
Dim Operand1 As Double, Operand2 As Double
Dim Operator As String
Dim ClearDisplay As Boolean

Private Sub ClearBttn_Click()
Display.Caption = ""
End Sub

Private Sub Digits_Click(Index As Integer)
If ClearDisplay Then
Display.Caption = ""
ClearDisplay = False
End If
Display.Caption = Display.Caption + Digits(Index).Caption
End Sub

Private Sub Div_Click()
Operand1 = Val(Display.Caption)
Operator = "/"
Display.Caption = ""
End Sub

Private Sub DotBttn_Click()
If InStr(Display.Caption, ".") Then
Exit Sub
Else
Display.Caption = Display.Caption + "."
End If
End Sub

Private Sub Equals_Click()
Dim result As Double

On Error GoTo ErrorHandler
Operand2 = Val(Display.Caption)
If Operator = "+" Then result = Operand1 + Operand2
If Operator = "-" Then result = Operand1 - Operand2
If Operator = "*" Then result = Operand1 * Operand2
If Operator = "/" And Operand2 <> "0" Then result = Operand1 / Operand2
Display.Caption = result
ClearDisplay = True
Exit Sub
ErrorHandler:
MsgBox "The operation resulted in the following error" & vbCrLf & Err.Description
Display.Caption = "ERROR"
ClearDisplay = True
End Sub

Private Sub Minus_Click()
Operand1 = Val(Display.Caption)
Operator = "-"
Display.Caption = ""
End Sub

Private Sub Over_Click()
If Val(Display.Caption) <> 0 Then Display.Caption = 1 / Val(Display.Caption)
End Sub

Private Sub Plus_Click()
Operand1 = Val(Display.Caption)
Operator = "+"
Display.Caption = ""
End Sub

Private Sub PlusMinus_Click()
Display.Caption = -Val(Display.Caption)
End Sub

Private Sub Times_Click()
Operand1 = Val(Display.Caption)
Operator = "*"
Display.Caption = ""
End Sub
...全文
243 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shb0626 2004-09-29
  • 打赏
  • 举报
回复
给我你的邮箱,给你附件!
shb0514 2004-09-20
  • 打赏
  • 举报
回复
//你做的这个热键Ctl+Alt+A,在xp操作系统中应该是截图的热键,只要按下去,就会出来菜单,让选择截图范围

我倒,关掉QQ!
我关掉QQ了,但是按了以后没有效果啊!
将文本框的ReadOnly设为True就可-------我的计算器显示处用的是lable控件,故而应该不存在那个Readonly属性。
text1.lock=true------同上

按钮建议用控件数组处理------可以告诉我这个处理方法吗?给个程序也行啊,谢谢!



还请各位继续赐教!
xueleic 2004-09-19
  • 打赏
  • 举报
回复
用keydown,keyup或keypress事件
然后用keycode或keyascii来确定按了什么键,因为不同的键对应不同的keycode或keyascii值。对不同的值做对应的处理即可。
BlueBeer 2004-09-19
  • 打赏
  • 举报
回复
//你做的这个热键Ctl+Alt+A,在xp操作系统中应该是截图的热键,只要按下去,就会出来菜单,让选择截图范围

我倒,关掉QQ!
wwqna 2004-09-19
  • 打赏
  • 举报
回复
text1.lock=true
iiboy 2004-09-19
  • 打赏
  • 举报
回复
将文本框的ReadOnly设为True就可
northwolves 2004-09-19
  • 打赏
  • 举报
回复
按钮建议用控件数组处理。
shb0514 2004-09-18
  • 打赏
  • 举报
回复
加了,好像还是不可以啊!你做的这个热键Ctl+Alt+A,在xp操作系统中应该是截图的热键,只要按下去,就会出来菜单,让选择截图范围!
xDotNet 2004-09-18
  • 打赏
  • 举报
回复
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_SETHOTKEY = &H32
Private Const HOTKEYF_SHIFT = &H1
Private Const HOTKEYF_CONTROL = &H2
Private Const HOTKEYF_ALT = &H4

Private Sub Form_Load()
'这个程序将Form的HotKey设置为 Ctl+Alt+A
Dim l As Long
Dim wHotkey As Long
wHotkey = (HOTKEYF_ALT Or HOTKEYF_CONTROL) * (2 ^ 8) + 65
l = SendMessage(Me.hwnd, WM_SETHOTKEY, wHotkey, 0)
End Sub
xDotNet 2004-09-18
  • 打赏
  • 举报
回复
RegisterHotKey

向程序定义热键

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧