启动窗体LogoFrm,控件ProgressBar1
登录窗体LoginFrm
主窗体MDIFrm
子窗体MainFrm,控件ListView1问题:
    系统启动时子窗体MainFrm.ListView1在后台装载数据,如何将ListView1的Count传递给LogoFrm.ProgressBar1,使ProgressBar1与ListView1数据
装载同步,避免用户等烦? 

解决方案 »

  1.   

    这么说吧:
    窗体B中的控件ListView有大量数据要装入,希望这个过程隐藏进行,也就是Load B同时B.Hide。但是这个过程里不可能让用户看着屏幕发呆啊!
    所以,就需要在此之前先启动窗体A,并在A上使用一个进度条。这个进度条的Value等于窗体B中ListView的记录数。
    假设数据库有i行数据,ListView必须一次装入,那么,进度条的Value=i。数据装入完成(进度条也刚好走到头),则卸载窗体A,并显示窗体B
    ------------------------------------
    由于进度条与ListVie不在同一个窗体,所以很迷糊,不知道怎么把ListVie的变量Count传递给进度条,时进度条的滚动刚好与ListVie的数据装载
    同时开始和结束。
      

  2.   

    Const a = 10000 '假设ListView有10000项
    Private Sub Form_Load()
    Form2.Hide
    ProgressBar1.Min = 0
    ProgressBar1.Max = 100
    End SubPrivate Sub Timer1_Timer()
    Form2.Hide
    s = Form2.ListView1.ListItems.Count
    s1 = s / 100
    ProgressBar1.Value = s1
    End Sub
      

  3.   


    1.B窗体在装载 ListView 的时候. 开始. A.ProgressBar1.Max=RS.RecordCount
     
     for i=1 to RS.RecordCount ';加载数据至 ListView
       Rs.MoveNext'  
       '....加载至 ListView
       A.ProgressBar1.Value=i/A.ProgressBar1.Max*100 & "%"
     Next
       
      

  4.   

    启动窗体LogoFrm,控件ProgressBar1 
    登录窗体LoginFrm 
    主窗体MDIFrm 
    子窗体MainFrm,控件ListView1
    思路应该是这样吧:
    在LoginFrm里验证登录后加入下面的语句
    MDIFRM.SHOW
    LOAD MainFrm
    在MAINFRMR的最上面加入
    dim lsfrm as new logofrm
    在mainfrm的LOAD里加入以下语句lsfrm .progressbar1.max=???
    lsfrm .progressbar1.min=???
    lsfrm.show
    在LISTVIEW装入数据的盾环中加入
    lsfrm.value=????
    数据装入完成后
    unload lsfrm
    mainfrm.show