Private Sub Form_Load()
 
 
     
     Dim sngBegin As Single
     Show
     sngBegin = Timer
     Do While (Timer - sngBegin + 86400) Mod 86400 < 2
          DoEvents
     Loop
     qidong.Hide
     mainform.Show
     
     
     
End Sub

解决方案 »

  1.   

    默认启动窗体在 Form_Load() 之后会自动显示,所以你在调用 qidong.Hide 是无作用的。
    默认启动要设为 Sub Main()
    Sub Main()
        Dim sngBegin As Single 
        qidong.Show 
        sngBegin = Timer 
        Do While (Timer - sngBegin + 86400) Mod 86400 < 2 
              DoEvents 
        Loop 
        Unload qidong 'Hide 不能彻底释放'
        mainform.Show 
    End Sub
      

  2.   

    奇怪,我试了你的代码。在我这里,你的代码工作正常,没有出现你说的“窗体qidong不隐藏,在mainform出险后 还显示在窗体mainform上面”的现象。我的工程设置如下:工程类型:标准EXE
    启动对象:qidong
      

  3.   

    另外qidong和mainform两个窗体我都用的标准窗体。
      

  4.   

    另外,建议你按2楼说的把hide变成unloadUnload qidong 'Hide 不能彻底释放'
      

  5.   

    还有,出现你说的这个现象期间,也就是在doevents那会儿,你的代码有没有在做什么别的可能会导致这个现象的事?
      

  6.   

    我猜你可能是要显示一个启动欢迎窗体,之后再显示主窗体,2楼那样写是比较标准的做法。给你摘一段MSDN的文字:显示启动时的快速显示 
    如果启动时有一个较长的执行过程,例如要从数据库中装入大量数据或者要装入一些大型位图,这时可能希望在启动时给出一个快速显示。快速显示是一种窗体,它通常显示的是诸如应用程序名,版权信息和一个简单的位图等内容。启动 Visual Basic 时所显示的屏幕就是一个快速显示。要显示快速显示,需用 Sub Main 过程作为启动对象,并用 Show 方法显示该窗体:
    Private Sub Main()
       '显示快速显示。
       frmSplash.Show
       '在此处添加启动过程。
       ...
       '显示主窗体并卸载快速显示。
       frmMain.Show
       Unload frmSplash
    End Sub欲将 Sub Main 过程设为启动对象,可从“工程”菜单中,选取“工程属性”,再选“一般”,然后从“启动对象”框中选定“Sub Main”。
      

  7.   

    Sub Main()
        Dim sngBegin As Single 
        qidong.Show 
        sngBegin = Timer 
        Do While (Timer - sngBegin + 86400) Mod 86400 < 2 
              DoEvents 
        Loop 
        Unload qidong 'Hide 不能彻底释放'
        mainform.Show 
    End Sub
      

  8.   

    我这里 按老方法还是 在出现,
    采用 clear_zero的方法了,
    感谢大家
      

  9.   

    clear_zero这个盗版大王,她抄的是2楼的代码,一个字都没改!!!