在一过程里,程序执行有没有先后顺序?

XinJW 2008-02-12 06:38:31
If rsSearch.EOF = False Then 
Label.Visible = True

For ncntr = 1 To rsSearch.RecordCount
lstCustom.AddItem rsSearch.Fields("CustomNO")
rsSearch.MoveNext
Next
........
End If

Label.Visible = False


在上面代码中.我想实现的功能是查询数据前 label的visible为真,数据查寻结束后Label就消失了.但是我在实验过程中,总是查寻跟这两个执行过程同时实现,或者是先查寻然后那两个再执行的,请问我想要的效果如何实现?谢谢.
...全文
179 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2008-02-14
  • 打赏
  • 举报
回复
这样:
If rsSearch.EOF = False Then
Timer1.Interval = 1000
Timer1.Enabled = True

For ncntr = 1 To rsSearch.RecordCount
lstCustom.AddItem rsSearch.Fields("CustomNO")
rsSearch.MoveNext
Next
........
End If

Timer1.Enabled = False
Label.Visible = False

'Timer 事件
Private Sub Timer1_Timer()
Label1.Visible = True
Label1.Refresh
End Sub
jadeluo 2008-02-14
  • 打赏
  • 举报
回复

Label.Visible = True
Label.Refresh '增加这一行
红叶哥 2008-02-14
  • 打赏
  • 举报
回复
這樣延時:

private sub aaaa()
dim Wait as double
Dim dTime As Double
dtime = Timer
Do While (Timer - dtime) < Wait
If Timer < dtime Then dtime = Timer
DoEvents
Loop
end sub
熊孩子开学喽 2008-02-14
  • 打赏
  • 举报
回复
改成:
Label.Visible = True
Doevents
With lstCustom
.Visible=False
For ncntr = 1 To rsSearch.RecordCount
.AddItem rsSearch.Fields("CustomNO")
rsSearch.MoveNext
Next
.Visible=True
End With
这样一来可以让Label及时显示出来,
二来,当你数据量很大的时候可以极大的提高程序运行速度
Ankeyfu 2008-02-13
  • 打赏
  • 举报
回复
你可以這樣:



If rsSearch.EOF = False Then
PanelReadDatabase.Visible = True
Me.Refresh '加上這一句
For ncntr = 1 To rsSearch.RecordCount
lstCustom.AddItem rsSearch.Fields("CustomNO")
rsSearch.MoveNext
Next
End If




也可以這樣:



If rsSearch.EOF = False Then
PanelReadDatabase.Visible = True
DoEvents '加上這一句
For ncntr = 1 To rsSearch.RecordCount
lstCustom.AddItem rsSearch.Fields("CustomNO")
rsSearch.MoveNext
Next
End If

在你的数据库查寻很慢的问题. 中回答了問題.http://topic.csdn.net/u/20080212/16/eed137c0-fe73-4f26-b1f0-baf29041d41b.html


900126 2008-02-13
  • 打赏
  • 举报
回复
那要是1.1秒呢?
XinJW 2008-02-13
  • 打赏
  • 举报
回复
那么现在有个问题,就是如果查寻数据量很小在一秒中内能够查寻的出来的话就不要Label.Visible = True,如果查寻时间大于1秒的话才出现,怎么做呢.
900126 2008-02-13
  • 打赏
  • 举报
回复
在改变 visibled 的下一句,加一个doevents就可以了,两个都加。
不要使用延时,不但没用,而且危险。
XinJW 2008-02-12
  • 打赏
  • 举报
回复
楼上的,谢谢你的正解,还有我在没有你的DoEvents之前相过用timer,但是应该怎么用呢?

Label.Visible = True
timer1.Enabled=true
if timer1.Interval=0 then
...
end if

是这样用吗?
红叶哥 2008-02-12
  • 打赏
  • 举报
回复
DoEvents用法:
Label.Visible = True
DoEvents

延时:
增加控件:Timer
XinJW 2008-02-12
  • 打赏
  • 举报
回复
2楼,如何加延时,1楼,DoEvents怎么用,能借本案举例吗?
红叶哥 2008-02-12
  • 打赏
  • 举报
回复
在"Label.Visible = True "這句後面,加上延時
程序運行太快,眼睛看不出變化

buzhihuigai 2008-02-12
  • 打赏
  • 举报
回复
可以用DoEvents吧

7,789

社区成员

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

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