RT
我用listview来显示一些生成的数据,
每次生成所有数据的时间都要几十秒,
但是ListView是等到处理完了才显示数据,这样造成程序假死的样子
有没有方法能让ListView里面的数据生成了就刷新出来呢?
我在网上查了几个方法都还是老样子..求教了..谢谢

解决方案 »

  1.   

    Application.ProcessMessages;可以解决假死,在后面添加上就行了,稍微影响点效率.无所谓.嘿嘿
      

  2.   

    数据加载前 ListView1.Items.BeginUpdate;
    数据加载中 Application.ProcessMessages;
    数据加载完 ListView1.Items.EndUpdate;
      

  3.   

    with Form1.ListView1 do beginItems.BeginUpdate;
    Application.ProcessMessages;
    ListItem:=Items.Add;
    ListItem.Caption:=SearchRec.Name;
    ListItem.SubItems.Add('清除');
    ListItem.SubItems.Add(path+SearchRec.Name);
    Items.EndUpdate;end;这样写 对不...
      

  4.   

    要想每增加一个item就显示出来就不要调用ListView.Items.BeginUpdate和EndUpdate
    在增加每个项目后调用Application.ProcessMessages.
      

  5.   

    不建议调用Application.ProcessMessages, 调用Form1.ListView1.Refresh
      

  6.   

    ListView显示的话最好限制行数
    刷新较慢,即使开线程来添加也只能起到改善作用因为这个控件并不是被设计为显示大量数据和频繁刷新的