注册 登录
编程论坛 VB6论坛

在 vb 中在 image 的 mousemove 事件触发后,我想延时 2s 再执行其他操作,结果光标一移动到 image 上程序就卡死?

石头12138 发布于 2014-05-20 20:19, 1276 次点击
相关代码:
timer1  我设的是10,我想实现的效果是光标一移动到image1,等2s然后image1消失,image5出现。
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
delay = time
While (c = 1)                   ”c是标志,初始值=1
If (time = delay + 300) Then
c = 0
End If
Wend
c = 1
Image1.Visible = False
Image5.Visible = True
End Sub

Private Sub Timer1_Timer()
time = time + 1
End Sub
求大神解救?为什么卡死?或者用什么方法实现我想要的功能!!
5 回复
#2
xzlxzlxzl2014-05-20 22:02
While (c = 1)                   ”c是标志,初始值=1
If (time = delay + 300) Then
c = 0
End If
doevents                       '把控制权交给系统,否则单线程的vb6进入死循环,时钟是不会被触发的
Wend
#3
vbvcr512014-05-21 09:10
正确。就是这个原因。
#4
石头121382014-05-21 20:55
#5
啊良2014-05-21 21:24
先编个计时噐:
Private Sub Timer1_Timer()
A = A + 1
PRINT  A
End Sub
#6
afeibfp2014-05-23 16:49
可能这里加个 doevents 是最简单的方法,但要知道你更多的需求才能提供其他方法
1