Vb6 如何将大型数组提取或加载到listview中?

Vb6 如何将大型数组提取或加载到listview中?,vb6,Vb6,我有一个5万件物品的数组。我想尽快将所有项目加载到我的listview控件中。使用循环不是解决方案,因为循环非常慢。据我所知,没有办法批量加载,但有其他技巧可以让它更快一些。一种是防止控件在加载期间更新(重新绘制)。这只需在加载时将其隐藏即可。另一种技术是预先加载一个记录块(比如2K),然后使用计时器在后台加载其余的记录块 但老实说,我怀疑一个显示了5万个项目的网格是否有用。这是太多的数据,无法在一次传递中呈现给用户。您是否考虑过重构UI以限制用户一次必须筛选的数据量。基础ListView控件具

我有一个5万件物品的数组。我想尽快将所有项目加载到我的listview控件中。使用循环不是解决方案,因为循环非常慢。

据我所知,没有办法批量加载,但有其他技巧可以让它更快一些。一种是防止控件在加载期间更新(重新绘制)。这只需在加载时将其隐藏即可。另一种技术是预先加载一个记录块(比如2K),然后使用计时器在后台加载其余的记录块


但老实说,我怀疑一个显示了5万个项目的网格是否有用。这是太多的数据,无法在一次传递中呈现给用户。您是否考虑过重构UI以限制用户一次必须筛选的数据量。

基础ListView控件具有虚拟模式,这意味着您的应用程序只向控件传递一个计数,然后它会定期回调以获取有关可见项的信息。不幸的是,VB6公共控件并未公开此功能,但您仍然可以使用底层控件


请参见此示例。

,thaks提供了一些巧妙的提示。嗯,我同意listview对于大型阵列来说并不是一个好的选择。什么可能是比listview更好的选择?@NokImchen tcarvin的观点很简单,在任何视图中向用户提供50K行都是不现实的,用户将如何处理这些记录?+1对于站点链接,我记得这个站点。虽然我认为子类化可能超出了OP的要求。还有一些商业网格也提供虚拟功能,他可能会得到更多的支持。