我在form_load中调用子过程,form就不显示出来,怎么办?

mus 2002-02-18 12:18:53
我在form_load()初始化一个voice控件,然后调用子过程1.这个子过程1使用这个控件朗读,然后这个子过程调用另外一个子过程2,子过程2重新调用子过程1,如此循环.
奇怪的是:朗读正常,但是form出不来,而且还无法关闭,
过去没有遇到过这种莫名其妙的问题,怎么办?
...全文
195 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mus 2002-02-18
  • 打赏
  • 举报
回复
有没有更好的办法?我觉得这样似乎有点...感觉有点儿别扭.
tg123 2002-02-18
  • 打赏
  • 举报
回复
form_load()
me.show
....
end sub
lyzok 2002-02-18
  • 打赏
  • 举报
回复
因为VB要先执行完form_load()中的语句后才能显示出界面,你在form_load()中的语句反复循环好几次,所以才长时间的不显示。
解决办法:
在Form上加入一个时钟控件,将form_load()中的所有代码移到Timer1_Timer中,在这些代码的最上放加入一条Timer1.Interval = 0,在form_load()中只要加入一条Timer1.Interval=100即可(数值可以大些或小些)。
mus 2002-02-18
  • 打赏
  • 举报
回复
明白了,非常感谢!这就上分!
fuxc 2002-02-18
  • 打赏
  • 举报
回复
form_load事件结束后才会show,所以load事件未结束前需要显示窗体的话,在你需要显示窗体的地方加me.show,如果程序处于长时间循环状态,窗体显示可能不正常,这时可以跟一句me.refresh,假如循环中窗体现实内容需更改(如进度条)则加入doevents,
另外,有些处理可以放在form_activate事件中
Chice_wxg 2002-02-18
  • 打赏
  • 举报
回复
private sub form_load
me.show
MySub
end sub

private sub MySub
'如果有循环,最好这样:
for i=1 to 10000
'你的代码
'你干你的活
doevents
next
end sub

这是最好的办法了。

7,759

社区成员

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

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