ListView虚拟化要求 RetrieveVirtualItem事件或在OnRetrieveVirtualItem 提供有效的ListViewItem

[复制链接]
查看11 | 回复3 | 2021-1-27 05:48:43 | 显示全部楼层 |阅读模式
Winform/VB.NET环境下,用listview虚拟模式加载5万条数据,能够实现数据的加载。按住垂直滚动条下拖数据可以正常展示,但在单击垂直滚动条的下拉三角按钮时,就报告错误窗体了,错误描述如下:
“ListView虚拟化要求RetrieveVirtualItem事件或在OnRetrieveVirtualItem方法中提供有效的ListViewItem”,有没有好的解决办法。
如图:

点击10几次继续后,垂直滚动条能正常向下移动,窗体并未崩溃。
这个错误在调试环境下总是捕捉不到断点,但我预计错误出在RetrieveVirtualItem事件,相关listview虚拟模式的事件代码如下:

PrivatemyCache1()AsListViewItem
PrivatefirstItem1AsInteger
PrivateSubLV1_CacheVirtualItems(senderAsObject,eAsSystem.Windows.Forms.CacheVirtualItemsEventArgs)HandlesLV1.CacheVirtualItems
Try
IfNot(myCache1IsNothing)AndAlsoe.StartIndex>=firstItem1AndAlsoe.EndIndex=firstItem1AndAlsoe.ItemIndex
有遇到的的同行吗?谢谢!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:48:43 | 显示全部楼层
相同问题,我是在多线程中通过委托调用ListView虚拟化显示,问题有时候有,有时候没有,头疼死了
回复

使用道具 举报

千问 | 2021-1-27 05:48:43 | 显示全部楼层
这个问题没人碰到吗?球大神现身!
回复

使用道具 举报

千问 | 2021-1-27 05:48:43 | 显示全部楼层
RetrieveVirtualItem()要求e.Item始终有值,但是你只有部分情形下才有值,这是错误的。
看ListView.RetrieveVirtualItem事件的示例是怎么做的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行