简而言之:如何在调用 RemoveAt(0) 时禁用自动滚动回列表框顶部?
背景:
我有一个简单的列表框,我定期将其中的数据混合在一起。
基本上我使用的是状态报告工具。
我的程序的每次迭代都会导致 100 行左右的数据被扔到列表框中,而将大量信息转储到其中的最佳方法是始终将其添加到底部。
我希望最新的结果位于底部,而最旧的结果“向上推”。因为此列表框的大小在短时间后变得相当大,所以我将大小限制为 1000 项。
当盒子里的元素超过 1000 件时,我使用 RemoveAt(0) 直到我再次获得 1000 件元素。
为了始终显示最相关的信息,我将列表框一直向下滚动。这个问题是每当我调用 RemoveAt(0) 时,该框都会自动滚动回新项目 0。基本上,每次我将项目添加到“完整”列表框时,效果都是快速向上滚动1000 个项目,然后退回 1000 个项目,使显示看起来很笨拙。
如何在调用 RemoveAt(0) 时禁用自动滚动回列表框顶部?
最佳答案
这只会在没有选择的项目时发生。或者换句话说,ListBox.SelectedIndex = -1。简单的解决方法是选择一个项目。和上一个一样。
关于c# - 导致自动滚动的列表框 RemoveAt 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082329/