我有一个 DataGridView,它不断被反弹到数据源。每秒一次。由于 DGV 的工作方式,我必须在每次刷新期间手动记录和重置滚动位置、排序列和选定行。所有这些工作正常。但是,当单击并拖动滚动条时,重新绑定数据会停止滚动。
例如,如果我在 DGV 的顶部并且开始向下滚动到底部,那么在它自行停止滚动之前,我可能只会向下滚动 1/2。
有任何想法吗?
我有一个 DataGridView,它不断被反弹到数据源。每秒一次。由于 DGV 的工作方式,我必须在每次刷新期间手动记录和重置滚动位置、排序列和选定行。所有这些工作正常。但是,当单击并拖动滚动条时,重新绑定数据会停止滚动。
例如,如果我在 DGV 的顶部并且开始向下滚动到底部,那么在它自行停止滚动之前,我可能只会向下滚动 1/2。
有任何想法吗?
请查看这个(问题是针对 DataGrid,但答案是针对 DataGrid/DataGridView)
您实际上并不直接与滚动条交互,而是设置了 FirstDisplayedScrollingRowIndex。因此,在重新加载之前,捕获该索引,一旦重新加载,将其重置为该索引。资料来源:Anurag Ranjhan
希望这会有所帮助!玩得开心
根据您的评论,也许这可能会有所帮助。尝试这个...
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
刷新时尝试在当前位置模拟鼠标左键单击。(向上会取消状态......这可能是一个很好的测试)
mouse_event(&H2, 0, 0, 0, 0) 'down
mouse_event(&H4, 0, 0, 0, 0) 'up
您也许可以玩这个并让它重新创建拖动状态。记得添加对 System.Runtime.InteropServices 的引用