listview刷新后,将行定位到刷新前的位置,为什么总会有几行偏差呢?
listview刷新后,将行定位到刷新前的位置,为什么总会有几行偏差呢?我的代码在下面,其中lvw2是listview的名称
If lvw2.ListItems.Count >= 1 Then
nSelect = lvw2.SelectedItem.Index
Else
nSelect = 0
End If
Call ShowDetail_fp(strdh) '这是调用刷新表格的过程
On Error Resume Next
If lvw2.ListItems.Count >= 1 Then
lvw2.ListItems(nSelect).EnsureVisible 'nSelect 为更新前选中的行
lvw2.ListItems(nSelect).Selected = True
End If
用这个代码可以基本实现,但是有一点小问题不太满意,就是刷新后,当前行的位置总与刷新前的位置差几行.
比如当前行如果不在表格的第一页的话(我的意思是滚动条不在最上方时),比如当前行为当前表格倒数第二行,但是刷新后,当前行变成倒数第一行了,即不管是倒数第几行,刷新后总是倒数第一行,当前行是可以显示在表格中(不会隐藏在后面),但是位置总有点偏差,这是为什么呢?这个可以解决吗?