窗体Load事件中代码过多,主要是从数据库中提取数据的代码,造成窗体打开过慢,怎么解决?能不能把这些代码写在其它事件中,并且跟在LOAD事件中写这些代码的效果相同.谢谢了

解决方案 »

  1.   

    把代码放入active事件里
    public blnInit as boolean
    sub form_load()'form load事件中
       blnInit =false
    end subsub form_active()'form active事件中
    if not blninit then
         blninit=true
          '你的相关代码
    end if
    end sub
      

  2.   

    是由数据读取造成的,LOAD事件中除去从数据库读取数据外就没有其它特殊作用了,而且其它代码执行不慢.
    请问如果把代码放入active事件中,是不是窗体一获得焦点就执行这里面的代码?如果当前窗体是活动的是时时触发里面的代码吗?我验证一下
      

  3.   

    放在active中不是个好办法,如果此过程无法优化,那么比较理想的方法就是做个起动界面,一些大型软件都是这样做的。比如我们用的VB6即是如此,你还可以在这个闪屏中加入进度条以示用户等待
      

  4.   

    如果加个自定义事件,把从数据库提取数据的代码放入这个自定义事件中,在LOAD里触发这个自定义事件,这样的话怎么样?只是不知道怎么自定义事件?以前用PB的时候就这么做.
      

  5.   

    先出个信息提示框,让主程序加载,等完成后,显示主程序界面,关闭信息提示框像photoshop那样
      

  6.   

    用了下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