我试图在一个动作之后在初始点滚动一个列表,其结果是删除所有项目和重新填充。
我希望记录滚动位置然后重新设置,但GetScrollPos
由于某种原因总是返回0。
我一直在查看所有ListCtrl
方法,但似乎找不到方法,也注意到GetScrollPos
不存在,但它也没有引发异常。
答案 0 :(得分:7)
我通过计算底部项目并在其上方使用EnsureVisible
来实现它,因为EnsureVisible
总是会在目标项目下面显示额外项目(如果有的话)。
效果很好而且不需要GetScrollPos
,因为我非常确定没有SetScrollPos
。
list_total = list.GetItemCount()
list_top = list.GetTopItem()
list_pp = list.GetCountPerPage()
list_bottom = min(list_top + list_pp, list_total - 1)
list.EnsureVisible((list_bottom - 1))