gpt4 book ai didi

c# - WinForms ListView,在重新加载时记住滚动位置

转载 作者:可可西里 更新时间:2023-11-01 08:16:21 27 4
gpt4 key购买 nike

我有一个 ListView ,其中填充了 8 列用户数据。用户可以选择启用自动刷新,这会导致 ListView 被清除并重新填充数据库中的最新数据。

问题是当项目被清除并重新填充时,可见区域跳回到列表的顶部。因此,如果我正在查看 2000 项中的第 1000 项,返回到该项目非常不方便。

基本上,我要问的是,如何获取当前的滚动距离(x 和 y)然后恢复它们?

最佳答案

我只是想为那些拼命尝试使用有问题的 ListView.TopItem 属性的人提供一些信息:

  1. 您必须在调用 ListView.EndUpdate 后设置 TopItem 属性
  2. ListView 控件的项目必须将它们的 Text 属性设置为其他值而不是 String.Empty,否则该属性将不起作用。
  3. 设置 ListView.TopItem 会间歇性地抛出空引用异常。始终将这行代码放在 Try...Catch block 中。

当然,这样会导致ListView的滚动条跳到0,回到top item的位置,很烦人。如果您找到解决此问题的方法,请更新此问题。

关于c# - WinForms ListView,在重新加载时记住滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/626315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com