写了个小计算器但没解决添入问题

ssht968 2003-10-09 07:04:11
我有一个text1.text 我第一次输入123并且让string1=123 然后清空text1
然后我在想在text1上输入234并且让它储存为string2 到了这里就没法在继续下去了
因为我晴空text1后 就没有办法把234复值到string2 中了。有什么方法没??

我的意思就是让有个循环让234能输入到string 2 中,谢谢请帮忙
...全文
18 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
windysound 2003-10-09
  • 打赏
  • 举报
回复
不知道你想说什么,写一个你看看吧!
Option Explicit
Private number1 As Double
Private number2 As Double
Private result As Double
Dim dian As Boolean
Dim flag As Boolean
Private flag1 As Boolean
Dim aaa As Boolean
Dim bbb As Boolean
Private yunsuan As String

Private Sub bai_Click()
If flag1 = False Then
If yunsuan = "+" Then
number2 = Val(Text1.Text) * 0.01 * number1
Text1.Text = Str(number2)
ElseIf yunsuan = "*" Then
number2 = Val(Text1.Text) * 0.01
Text1.Text = Str(number2)
End If
End If
flag1 = True
aaa = False
End Sub

Private Sub c_Click()
Text1.Text = "0."
dian = False
number1 = 0
number2 = 0
flag = False
flag1 = False
End Sub


Private Sub ce_Click()
If aaa = True Then
If flag = False Then
number1 = 0
Text1.Text = "0."
ElseIf flag = True Then
number2 = 0
Text1.Text = "0."
End If
End If
End Sub

Private Sub Command1_Click(Index As Integer)
If bbb = False Then
If Text1.Text = "0." And dian = False Then
Text1.Text = ""
End If
Dim Num As Integer
Select Case Index
Case 0
Num = 0
dian = True
Case 1
Num = 1
Case 2
Num = 2
Case 3
Num = 3
Case 4
Num = 4
Case 5
Num = 5
Case 6
Num = 6
Case 7
Num = 7
Case 8
Num = 8
Case 9
Num = 9
End Select
If Len(Text1.Text) < 10 Then
Text1.Text = Text1.Text & Num
End If
End If
aaa = True
End Sub

Private Sub Command2_Click()
If InStr(Text1.Text, ".") Then
Text1.Text = Text1.Text
Else
Text1.Text = Text1.Text + "."
End If
End Sub

Private Sub dengyu_Click()
If flag1 = False Then
number2 = Val(Text1.Text)
If yunsuan = "+" Then
result = number1 + number2
Text1.Text = Str(result)
number1 = Val(Text1.Text)
ElseIf yunsuan = "-" Then
result = number1 - number2
Text1.Text = Str(result)
number1 = Val(Text1.Text)
ElseIf yunsuan = "*" Then
result = number1 * number2
Text1.Text = Str(result)
number1 = Val(Text1.Text)
ElseIf yunsuan = "/" Then
If number2 = 0 Then
MsgBox "·Öĸ²»ÄÜΪÁã"
Text1.Text = ""
Else
result = number1 / number2
Text1.Text = Str(result)
number1 = Val(Text1.Text)
End If
End If
ElseIf flag1 = True Then
bai_Click
If yunsuan = "+" Then
result = number1 + number2
Text1.Text = Str(result)
number1 = Val(Text1.Text)
ElseIf yunsuan = "*" Then
result = number1 * number2
Text1.Text = Str(result)
number1 = Val(Text1.Text)
End If
End If
aaa = False
bbb = True
End Sub

Private Sub Form_Load()
Text1.Text = "0."
number1 = 0
number2 = 0
End Sub

Private Sub yun_Click(Index As Integer)
number1 = Val(Text1.Text)
Select Case Index
Case 0
yunsuan = "+"
Text1.Text = ""
flag = True
Case 1
yunsuan = "-"
Text1.Text = ""
flag = True
Case 2
yunsuan = "*"
Text1.Text = ""
flag = True
Case 3
yunsuan = "/"
Text1.Text = ""
flag = True
End Select
bbb = False
End Sub
ssht968 2003-10-09
  • 打赏
  • 举报
回复
这样说能简单点,如何进行+ ,-* /运算?
ssht968 2003-10-09
  • 打赏
  • 举报
回复
也许大家都明白我的意思。
Mi_Bo(东方云霄) 你理解错了,我的意思是当清空text 后,string2=""
所以没有办法输入234了,这个是我很困惑的地方。
string=text1.text
text1.text=""
string2=""
当我实质要求是 当清空text后就可以再次输入234
并且让string2=234 就这个意思。。。哎,我怎么叙述能明白呢。
这个是text
|--------------|
|______________| 我在里面输入了123
然后|--------------|
|___123________| 并且 我让string1=text.tex1
这时,我学要text清空,
|--------------|
|______________|
然后我再次输入234
为的是string2能够得到我第二次副值 string2=text1.text
可是第二次副值string2 得到的是 空的。。
我的意思是在TEXT1中怎么输入两次数,
Dim s As Integer
Dim get_Value As String
Dim obtain As String
Dim max As Integer
Private Sub cmd_Calculation_Click(Index As Integer)

End Sub

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"

Case 107
cmd_Calculation(0).SetFocus
get_Value = "+"

Case 109
cmd_Calculation(1).SetFocus
get_Value = "-"

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
Mi_Bo 2003-10-09
  • 打赏
  • 举报
回复
string2=string1
输入完第一个数,
string1=text1.text
text1.text=""
再输入第二个数啊
string2=text1.text
有什么困难的吗?
qiqunet 2003-10-09
  • 打赏
  • 举报
回复
上一次你那个不能输入第二次数值的问题解决了没有?
我想在后面接着回复一句:"val()这个函数本身就可以去掉多个小数点并清除前置的"0",不用其它的编程语句",但由于论坛规则不能连续回贴四次的限制,没补上去,呵
你上面的文意我看不懂,呵
Dublue 2003-10-09
  • 打赏
  • 举报
回复
既然清空又输入,怎会没法赋值?
string2=trim(text1.text)
qiqunet 2003-10-09
  • 打赏
  • 举报
回复
看了楼主的陈述,我竟然一头乌水,有点晕~!~#!#·¥**

7,762

社区成员

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

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