2012-01-06 51 views

回答

2

据我所知,没有办法进行批量加载,但还有其他技巧可以使其更快一些。一种是防止控制在加载过程中更新(重新绘制)。这可以像加载时隐藏它一样简单地完成。另一种技术是在前面加载一大块记录(比如说2K),然后用一个定时器在后台加载其余的块。

但老实说,我怀疑显示50K项目的网格的有用性。这是太多的数据,一次传递给用户。您是否考虑过重构您的用户界面以限制用户一次筛选的数据量。

+0

。,对于聪明的提示。那么,我同意listview对于大型数组并不是一个好的选择。什么是可能更好的选择,而不是listview? – 2012-01-06 12:59:56

+0

@NokImchen tcarvin提出的观点很简单:在任何视图中向用户提供50K行是不切实际的,用户将如何处理这些记录? – 2012-01-06 16:21:22

3

底层的ListView控件有一个虚拟模式,这意味着您的应用程序只会将一个计数传递给控件,​​然后它会定期回调以获取有关可见条目的信息。不幸的是,这个功能没有被VB6公共控件公开,但是你仍然可以使用底层控件。

请参阅此vbVision示例。

+0

+1对于网站链接,我记得这个网站。尽管我认为子类化可能超出了OP的期望。有商业网格也提供虚拟功能,他可能会得到更多的支持。 – tcarvin 2012-01-09 13:04:36