强制ListView在后台绘制

时间:2008-09-25 04:14:01

标签: .net listview

我有一个ListView,有时我需要放入10000个项目.ListViews并不能很好地处理这个问题,并且他们在对项目进行排序并绘制它们时会锁定几秒钟。如果您单独添加项目,则更糟糕的是,锁定将近一分钟。

为了解决这个问题,我想在我需要显示它之前尝试填充ListView,但遗憾的是它还有其他想法。它只在我打开包含ListView的面板时才开始绘图,使程序挂起几秒钟。

关于如何消除这种延迟的任何想法?或者是否有另一个相对容易使用的组件,可以更好地显示大量数据?

2 个答案:

答案 0 :(得分:7)

您需要使用VirtualMode

答案 1 :(得分:0)

好。如果您只想在后台加载内容,可以尝试使用一个线程来填充ListView,这将使表单加载。

如果你放一个Application.DoEvents(),我认为你不会得到暂停。当您加载项目时(允许表单重绘和接收事件)。

for (int ix=0; ix < 10000; ix ++)
{
 listView1.Items.Add(ix.ToString());
 Application.DoEvents();
}

如果您不了解VirtualMode

,我想我的建议很好