我想做个计算器 就是不知道该怎么收到第二次数值

ssht968 2003-10-08 10:28:37
我用一个LABELE做的输入框,当我想在第一次输入后,在向那个LABEL中输入数时就没办法了,我想先清空LABEL后在输入,可是这样就没有办法进行运算。
例如 第一次在筐中输入12356
第二次想输入333就先清空一下label 可是当我清空完后
label1.caption=""
second=val(label1.caption)
这样就不行了,还有一个问题就是不让它这个里面重复出现小数点该怎么做??
和这个数的头不能是零,请给出具体解决方安,谢谢


Dim s As Integer
Dim get_Value As String
Dim obtain As String
Dim max As Integer


Private Sub cmd_Num_Click(Index As Integer)

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode
Case 96

cmd_Num(0).SetFocus
get_Value = "0"

Case 97
cmd_Num(1).SetFocus
get_Value = "1"

Case 98

cmd_Num(2).SetFocus
get_Value = "2"

Case 99
cmd_Num(3).SetFocus
get_Value = "3"

Case 100
cmd_Num(4).SetFocus
get_Value = "4"

Case 101
cmd_Num(5).SetFocus
get_Value = "5"

Case 102
cmd_Num(6).SetFocus
get_Value = "6"

Case 103
cmd_Num(7).SetFocus
get_Value = "7"

Case 104
cmd_Num(8).SetFocus
get_Value = "8"

Case 105
cmd_Num(9).SetFocus
get_Value = "9"

Case 48

cmd_Num(0).SetFocus
get_Value = "0"

Case 49
cmd_Num(1).SetFocus
get_Value = "1"

Case 50

cmd_Num(2).SetFocus
get_Value = "2"

Case 51
cmd_Num(3).SetFocus
get_Value = "3"

Case 52
cmd_Num(4).SetFocus
get_Value = "4"

Case 53
cmd_Num(5).SetFocus
get_Value = "5"

Case 54
cmd_Num(6).SetFocus
get_Value = "6"

Case 55
cmd_Num(7).SetFocus
get_Value = "7"

Case 56
cmd_Num(8).SetFocus
get_Value = "8"

Case 57
cmd_Num(9).SetFocus
get_Value = "9"


End Select

obtain = Label1.Caption & get_Value
Label1.Caption = obtain


End Sub



Private Sub Label1_Change()
Dim ss As String

max = Len(obtain)
ss = Mid(obtain, 1, 11)
If max >= 11 Then
Label1.Caption = ss
End If
End Sub

...全文
47 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gelim 2003-10-11
  • 打赏
  • 举报
回复
响应KEYPRESS事件!在那里处理!
ssht968 2003-10-09
  • 打赏
  • 举报
回复
如何进行+,-,*,/ 运算
qiqunet 2003-10-08
  • 打赏
  • 举报
回复
Private Sub Form_Click()
string1 = "0002.323.2"
m = InStr(string1, ".")
If m > 0 Then n = InStr(Mid(string1, m + 1, Len(string1)), ".")
If n > 0 Then
strint1 = Mid(string1, 1, m + n - 1)
End If

string2 = Val(string1)'去掉前置的“0”加上这一句
Print string1
Print string2

End Sub
qiqunet 2003-10-08
  • 打赏
  • 举报
回复
'阻止第二个以上的小数点
Private Sub Form_Click()
string1 = "2.323.2"
m = InStr(string1, ".")
If m > 0 Then n = InStr(Mid(string1, m + 1, Len(string1)), ".")
If n > 0 Then
Print Mid(string1, 1, m + n - 1)
Else
Print string1
End If
End Sub

qiqunet 2003-10-08
  • 打赏
  • 举报
回复
second=val(label1.caption)

second为系统保留字,是一个取秒数的函数,不允许赋值。
Dublue 2003-10-08
  • 打赏
  • 举报
回复
label输入?怎么输入?为什么不用testbox?
关于“重复输入小数点”,没看懂,能否说的详细些?
头不能是零,可以用先用val转为数字,再转换为字符串

7,762

社区成员

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

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