如何让ListView不闪烁?(50分)

  • 主题发起人 主题发起人 seven_918
  • 开始时间 开始时间
S

seven_918

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中循环添加ListView的Item,ListView会出现闪烁,我应该怎样让其不闪烁呢?
代码如下:
for I := 1 to 10000 do
begin
with ListView1.Items.Add do
begin
Caption := IntToStr(I);
ImageIndex := I;
end;
Application.ProcessMessage;
end;
请大家帮帮忙,在这里谢谢先!
 
Listview.BeginUpdate;
try
...
finally
Listview.EndUpdate;
End;
 
我到没试过让listview不闪烁,不过我到是见识过它的闪烁。兄弟,换吧,listview速度
太慢,用stringgrid吧,速度快多了
 
Listview.Items.BeginUpdate;
try
...
for (...)
begin
ListView.Items.Add(..)
end
finally
Listview.Items.EndUpdate;
End;
 
我试了一下,没发现闪烁,只是速度太慢,需要几分钟才可以执行完
 
ListView1.DoubleBuffered := true;
 
好像使用ListView很慢! 
 
to lanbing1400:
是不会出现闪烁,但是如果ImageList中的图标也是动态加入的话就会有了!
 
to qianwt:
你这样做是在添加完所有的Item后,再显示,可我要在程序运行的过程中,能看到Item
一个一个的加上去。
 
不要BeginUpdate和EndUpdate,
FormCreate中加一句:
ListView1.DoubleBuffered := true;
 
to seven_918
直接加节点肯定回这样,那你还用刚才的方法,但把把循环改小点
比如每增加10个节点beginupdate, endupdate一次,你看看能不能达到你要的效果
 
多人接受答案了。
 
感谢zw84611的方法~
 
后退
顶部