窗体Load事件中代码过多,造成窗体打开过慢,怎么解决?

窗体Load事件中代码过多,主要是从数据库中提取数据的代码,造成窗体打开过慢,怎么解决?能不能把这些代码写在其它事件中,并且跟在LOAD事件中写这些代码的效果相同.谢谢了
[85 byte] By [gaojupeng-高朋] at [2008-1-9]
# 1
大家都放假了吗?顶啊顶
gaojupeng-高朋 at 2007-10-18 > top of Msdn China Tech,visual basic,基础类...
# 2
把代码放入active事件里
public blnInit as boolean
sub form_load()'form load事件中
blnInit =false
end sub

sub form_active()'form active事件中
if not blninit then
blninit=true
'你的相关代码
end if
end sub
# 3
你要确定是否由数据读取造成的,如果是那样,就尽量优化数据库
daisy8675-莫依沉迷 at 2007-10-18 > top of Msdn China Tech,visual basic,基础类...
# 4
是由数据读取造成的,LOAD事件中除去从数据库读取数据外就没有其它特殊作用了,而且其它代码执行不慢.
请问如果把代码放入active事件中,是不是窗体一获得焦点就执行这里面的代码?如果当前窗体是活动的是时时触发里面的代码吗?我验证一下
gaojupeng-高朋 at 2007-10-18 > top of Msdn China Tech,visual basic,基础类...
# 5
什么情况下触发active事件?
gaojupeng-高朋 at 2007-10-18 > top of Msdn China Tech,visual basic,基础类...
# 6
放在active中不是个好办法,如果此过程无法优化,那么比较理想的方法就是做个起动界面,一些大型软件都是这样做的。比如我们用的VB6即是如此,你还可以在这个闪屏中加入进度条以示用户等待
# 7
如果加个自定义事件,把从数据库提取数据的代码放入这个自定义事件中,在LOAD里触发这个自定义事件,这样的话怎么样?只是不知道怎么自定义事件?以前用PB的时候就这么做.
gaojupeng-高朋 at 2007-10-18 > top of Msdn China Tech,visual basic,基础类...
# 8
先出个信息提示框,让主程序加载,等完成后,显示主程序界面,关闭信息提示框

像photoshop那样
# 9
放在哪里VB都需要等待处理,如果数据量很大的话,就应该在程序启动的时候就开始读取,将代码放在初始化事件中相对较快些,当然还是会比较慢,唯一的办法就是分批读取数据
# 10
用了下WebBrowser1这个控件来播放GIF动画(提示等待信息),我做了一个窗体FrmSplash,上面放一个WebBrowser1,作为一个单独的窗体GIF可以正常打开,也可以看到GIF图片,但要是放在另一个窗体FrmTest的LOAD事件中,发现窗体打开后,不显示动画,不知道为什么?
FrmTest窗体 LOAD事件中的代码如下:
Private Sub Form_Load()
FrmSplash.show
'FrmTest 窗体load事件中从数据库提取数据,
'需要等待很长时间才能打开FrmTest,防止用户等待时不耐烦,所以显示动画
unlaod FrmSplash
'FrmTest 窗体打开后关闭FrmSplash
End Sub
gaojupeng-高朋 at 2007-10-18 > top of Msdn China Tech,visual basic,基础类...