展开全部
Private Enum JS
加
减
乘
除
没有
End Enum
Private Str$, D As Boolean, DH As Boolean
Private su(1 To 2) As Double, JSF As JS
Private Sub CBackspace_Click() '后退
If Len(Str) > 1 Then '大于两个字符
Str = Left(Str, Len(Str) - 1) '减去一个字符
If InStr(Str, ".") = 0 Then D = False '如果减去的为点,设置点标志
Else
If Str <> "0" Then Str = "0" '如果为1位,直接清零
End If
PrintText
End Sub
Private Sub CCE_Click() '清除当前数值 ,清屏
Str = "0"
D = False
PrintText
End Sub
Private Sub CC_Click() '清除,归零
ExeInte
PrintText
End Sub
Private Sub CDeng_Click() '等号的运算
Dim i% '申请integer变量
i = JSF '运算标识号转为integer 不然会出错 enum 为 long型
DH = True '设置等号标志为true
YunSuan_Click i '调用计算
DH = False '设置等号标志为False
End Sub
Private Sub sum_Click(Index As Integer) '0 to 9 的数组换件索引
Str = Val(Str & Index)
PrintText
End Sub
Private Sub PrintText() '显示处理
If Str = "" Then Str = "0" '为空时,初始为0
If D Then '如果按过点
If Left(Str, 1) = "." Then Str = "0" & Str '如果点为开始 ,即数值小于1
Text1.Text = Str '显示
Else
Text1.Text = Str & "." '没有点时加上
End If
End Sub
Private Sub Vd_Click() '点的处理
If D = False Then
Str = Str & "."
D = True
End If
End Sub
Private Sub FUValue() '字符转成数值
su(2) = Val(Str)
If DH = False Then
Str = "0"
D = False
End If
End Sub
Private Sub YunSuan_Click(Index As Integer)
On Error GoTo E
FUValue '字符转成数值
Select Case JSF '进行计算
Case 加: su(1) = su(1) + su(2)
Case 减: su(1) = su(1) - su(2)
Case 乘: su(1) = su(1) * su(2)
Case 除: su(1) = su(1) / su(2)
Case 没有
End Select
If su(1) Then Text1.Text = IIf(su(1) Mod 1 = 0, su(1) & ".", su(1)) '显示计算后的值!
JSF = Index
Exit Sub
E:
Text1.Text = "ERROR"
Str = "0"
D = False
JSF = 没有
End Sub
Private Sub ExeInte() '参数初始
Str = "0"
D = False
JSF = 没有
su(1) = 0
su(2) = 0
DH = False
End Sub
追问
能补充一下各段代码都写在哪个控件里吗 实在搞不懂
追答
源码 在此 只要把 TextBox 换成 Label 就行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询