题目
我想设计一个vb计算器程序,只能用小键盘输入,只有两个文本框,一个是当前输入数,一个是累计数,
按“+”号键就确认一笔数,当前输入的文本框就为空,累计框就加计为新的累计数,当按回车键后也与“+”号键一样,但还要多一项功能就是结束本组数字的计算,再输入的数字即为新的数字了.不要有乘、除法,只要加减法,即键盘上只认0~9,小数点、+、-、回车、退格键.其他的键一律不认.
现在的问题是,我按+号当成了数字输入,不确认为加号.
Private Sub Command1_Click()
Text2.Enabled = False
Text2.Text = Val(Text1.Text) + Val(Text2.Text)
Text1.Text = ""
End Sub
按“+”号键就确认一笔数,当前输入的文本框就为空,累计框就加计为新的累计数,当按回车键后也与“+”号键一样,但还要多一项功能就是结束本组数字的计算,再输入的数字即为新的数字了.不要有乘、除法,只要加减法,即键盘上只认0~9,小数点、+、-、回车、退格键.其他的键一律不认.
现在的问题是,我按+号当成了数字输入,不确认为加号.
Private Sub Command1_Click()
Text2.Enabled = False
Text2.Text = Val(Text1.Text) + Val(Text2.Text)
Text1.Text = ""
End Sub
提问时间:2021-01-26
答案
'Text1输入,Text2结果
Private Sub Text1_KeyPress(KeyAscii As Integer)
Static int1 As Integer
Debug.Print KeyAscii '45-,43+
If KeyAscii = 45 Or KeyAscii = 43 Then
'+,-
If int1 = 0 Then
Text2.Text = Val(Text1.Text)
Else
Text2.Text = Val(Text2.Text) + int1 * Val(Text1.Text)
End If
Text1.Text = ""
int1 = (44 - KeyAscii)
KeyAscii = 0
ElseIf (KeyAscii < 48 Or KeyAscii > 57) Then
KeyAscii = 0 '取消输入
Else
End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Static int1 As Integer
Debug.Print KeyAscii '45-,43+
If KeyAscii = 45 Or KeyAscii = 43 Then
'+,-
If int1 = 0 Then
Text2.Text = Val(Text1.Text)
Else
Text2.Text = Val(Text2.Text) + int1 * Val(Text1.Text)
End If
Text1.Text = ""
int1 = (44 - KeyAscii)
KeyAscii = 0
ElseIf (KeyAscii < 48 Or KeyAscii > 57) Then
KeyAscii = 0 '取消输入
Else
End If
End Sub
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
热门考点
- 11.What do you think are the biggest changes that can happen in a person’s life?(i.e.getting married,
- 2一条绳子,第一次剪去全长的1/4,第二次剪去全长的60%,还剩下6米,原来绳子长多少米?
- 3非常1+1上的
- 43、the,can,see,i,one,above,window,another,
- 5浮在水面上的冰块中包含着一些铅杂质,当冰融化后,为什么液面会下降?
- 6在有符号数中1000 0000是正数还是负数?它的补码是什么?
- 7根据下列的例句,仿写一句话
- 8计算:1乘3/1+3乘5/1……2007乘2009/1
- 9为迎接新一届艺术节,学校中心礼堂重新装修.有甲,乙两个工程队,甲队单独做需15天完成,乙队的工作效率是甲队的百分之75.甲,乙两队合作,需要几天才能完成这项工程的7/12?
- 10负1的6次方减(2分之一减一)乘(负三)(2-2的三次方