主题:VB小问题
zjd2659
[专家分:20] 发布于 2008-08-29 19:18:00
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Dim x, y As Long
x = Text1.Text
y = Text2.Text
If Text1.Text = "" Then x = 0
If Text2.Text = "" Then y = 0
Text3.Text = x * 3600 + y * 60
If Text3.Text > 0 Then
Text3.Text = Text3.Text - 1
ElseIf Text3.Text = 0 Then
Form2.Show
Form1.Hide
End
End If
End Sub
当我运行时在X里输数值运行错误,在Y里输数值可以运行,但是Z里得到的数值不梯减。请问是哪里出了问题?具体程序看附件
回复列表 (共10个回复)
沙发
lcrxl1815 [专家分:110] 发布于 2008-08-29 22:51:00
板凳
lcrxl1815 [专家分:110] 发布于 2008-08-29 22:55:00
你把X定义为双精度,把if text3.text>0 then该为if val(text3.text)>0 then这样试一试!
3 楼
天天学习 [专家分:4570] 发布于 2008-08-30 15:25:00
本来就不会递减的。每次text3.text的值都是固定的,因为text1和text2的值并没变啊!
4 楼
老大徒伤悲 [专家分:29120] 发布于 2008-08-30 16:39:00
错误一、声明类型错误: Dim x, y As Long中x为变体变量,y为长整形。
所以Text3.Text = x * 3600 + y * 60会出错!
……………………下次提问,要把错误在那里,什么提示说清楚。
错误二、text3的内容不变:正如“天天学习”所说。
废代码两行(If Text1.Text = "" Then x = 0 If Text2.Text = "" Then y = 0
),
修改如下:
点击下载附件
Dim x As Long, y As Long, z as long
Private Sub Command1_Click()
Timer1.Enabled = True
x = Text1.Text
y = Text2.Text
z= x * 3600 + y * 60
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
timer1.interval=1000
End Sub
Private Sub Timer1_Timer()
z=z-1
Text3.Text=z
If z= 0 Then
Form2.Show
Form1.Hide
End
End If
End Sub
5 楼
zjd2659 [专家分:20] 发布于 2008-08-30 18:10:00
老大徒伤悲
If Text1.Text = "" Then x = 0
If Text2.Text = "" Then y = 0
谢谢你们的回答,但是我这两行代码的含义是当文本1不输数值的时候把0赋给X,或文本2不输数值的时候把0赋给Y。现在这两个代码不起作用了,请问应该用什么代码。
6 楼
zjd2659 [专家分:20] 发布于 2008-08-30 19:08:00
还有就是怎么使text里的数值居中,label中的文字居中
7 楼
老大徒伤悲 [专家分:29120] 发布于 2008-08-30 21:13:00
当text1、text2为空,且x、y为数值类型变量的情况下,执行
x = Text1.Text
y = Text2.Text
x、y自动为零。
8 楼
老大徒伤悲 [专家分:29120] 发布于 2008-08-30 21:15:00
关于,textbox里面的内容居中,你看textbox属性如果有就参照,没有就算了。
这样的事情我从来没有想过。
9 楼
zjd2659 [专家分:20] 发布于 2008-08-30 22:10:00
现在明白了,但是要这样写才没有错误提示
x = val(Text1.Text)
y = val(Text2.Text)
那怎么限制在文本里只能输0-99的一位和两位数呢,就是按第3个数值的时候文本里没反应。
10 楼
老大徒伤悲 [专家分:29120] 发布于 2008-08-31 09:21:00
你不能一次把问题说吗?
你查吧,本版块这个问题的帖子不下10个。
我来回复