Option Explicit
Dim strNumber As String
Dim strPoint As String
Dim dblNum1 As Double
Dim intOperator As Integer
'æ¸
é¤ç»æ
Private Sub cmdGT_Click()
txtDisplay.Text = "0."
strNumber = ""
strPoint = "."
intOperator = 7
End Sub
'è¾å
¥æ°å
Private Sub cmdNumber_Click(Index As Integer)
strNumber = strNumber & cmdNumber(Index).Caption
txtDisplay.Text = strNumber & strPoint
End Sub
Private Sub cmdOnOff_Click()
End
End Sub
'è¿ç®è¿ç¨
Private Sub cmdOperator_Click(Index As Integer)
Dim dblnum2 As Double
'æ¯ç¬¬ä¸æ¬¡åå»è¿ç®ç¬¦æ¶ï¼å°è¾å
¥çå¼å
èµç»ç¬¬ä¸ä¸ªæ°ï¼å¦åèµå¼ç»ç¬¬äºä¸ªæ°è¿è¡è¿ç®
If intOperator = 7 Then
dblNum1 = CDbl(txtDisplay.Text)
Else
dblnum2 = CDbl(Val(txtDisplay.Text))
'æ ¹æ®è¾å
¥ç符å·è¿è¡è¿ç®
'æ±æ®éè¿ç®
Select Case intOperator
Case 0
dblNum1 = dblNum1 + dblnum2
Case 1
dblNum1 = dblNum1 - dblnum2
Case 2
dblNum1 = dblNum1 * dblnum2
Case 3
If dblnum2 <> 0 Then
dblNum1 = dblNum1 / dblnum2
Else
MsgBox "é¤æ°ä¸è½ä¸ºâ0âï¼è¯·éæ°è¾å
¥é¤æ°ã", vbOKOnly + vbInformation, "é¤é¶é误"
Index = intOperator
End If
Case 6
dblNum1 = dblNum1 * dblnum2 / 100
End Select
End If
'åå¾å½åè¾å
¥çè¿ç®ç¬¦ï¼ä»¥åä¸æ¬¡è¿ç®
intOperator = Index
strNumber = ""
txtDisplay = CStr(dblNum1)
'å¤ææ¯å¦ä¸ºææ¬æ¡ä¸çæ°åå ç¹
If Not txtDisplay Like "*.*" Then
txtDisplay.Text = txtDisplay.Text & "."
End If
End Sub
Private Sub cmdOtherOper_Click(Index As Integer)
Dim dblNum As Double
'æ±å¹³æ¹æ ¹ï¼å¹³æ¹ï¼
dblNum = CDbl(Val(txtDisplay.Text))
Select Case Index
Case 0
'éªè¯æ°æ®æ¯å¦ææ
If dblNum >= 0 Then
txtDisplay.Text = CStr(Sqr(dblNum))
Else
MsgBox "è´æ°ä¸è½å¼å¹³æ¹æ ¹ï¼", _
vbOKOnly + vbCritical, "å¼å¹³æ¹æ ¹é误"
End If
Case 1
txtDisplay.Text = CStr(dblNum ^ 2)
End Select
'å¤ææ¯å¦ä¸ºææ¬æ¡ä¸çæ°åå ç¹
If Not txtDisplay Like "*.*" Then
txtDisplay.Text = txtDisplay.Text & "."
End If
End Sub
Private Sub cmdPoint_Click()
strNumber = strNumber & strPoint
strPoint = ""
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'使被æä¸çæ°åé®ç对åºæé®åå¾ç¦ç¹
Select Case KeyCode
Case 48 To 57
cmdNumber(KeyCode - 48).SetFocus
Case 96 To 105
cmdNumber(KeyCode - 96).SetFocus
Case Else
'使æä¸ç符å·é®å¯¹åºçæé®åå¾ç¦ç¹
If KeyCode = 107 Or (Shift = vbShiftMask And KeyCode = 187) Then
cmdOperator(0).SetFocus
cmdOperator_Click (0)
ElseIf KeyCode = 109 Or KeyCode = 189 Then
cmdOperator(1).SetFocus
cmdOperator_Click (1)
ElseIf KeyCode = 106 Or (Shift = vbShiftMask And KeyCode = 56) Then
cmdOperator(2).SetFocus
cmdOperator_Click (2)
ElseIf KeyCode = 111 Or KeyCode = 191 Then
cmdOperator(3).SetFocus
cmdOperator_Click (3)
ElseIf KeyCode = 13 Then
cmdOperator(7).SetFocus
cmdOperator_Click (7)
ElseIf KeyCode = 8 Then
cmdGT.SetFocus
Call cmdGT_Click
End If
End Select
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
'å°åæ³çæ°æ®è¾å
¥å°ææ¬æ¡
Select Case KeyAscii
Case 48 To 58
'è°ç¨æ°åé®ç¹å»å¤çç¨åº
cmdNumber_Click KeyAscii - 48
KeyAscii = 0
Case 46
'è°ç¨å°æ°ç¹è¾å
¥
cmdPoint_Click
KeyAscii = 0
Case 13
'å½æ²å»å车æ¶ï¼ä¸è½è§¦åFormç KeyUp äºä»¶ï¼å æ¤å¨è¿é设置ææ¬æ¡çç¦ç¹
txtDisplay.SetFocus
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
txtDisplay.SetFocus
End Sub
Private Sub Form_Load()
strNumber = ""
strPoint = "."
intOperator = 7
End Sub
ççå§
温馨提示:答案为网友推荐,仅供参考