代码之家  ›  专栏  ›  技术社区  ›  alexD

如何防止数据源更改时DataGridView自动滚动?

  •  2
  • alexD  · 技术社区  · 17 年前

    我试过这个( http://brainof-dave.blogspot.com/2007/08/turning-off-auto-scrolling-in-bound.html )在DataTable上的“rowChanged”事件中,该事件是DataGridView的数据源,但无效。

    基本上,我有一个以bindingsource作为数据源的DataGridView。bindingSource的数据源是包含数据表的数据视图。每当其中一行中的数据发生更改时,DataGridView就会滚动回顶部。有没有简单的解决办法?

    1 回复  |  直到 17 年前
        1
  •  1
  •   alexD    17 年前

    看起来我找到了: http://seewinapp.blogspot.com/2005/09/is-your-autoscroll-too-auto.html

    我覆盖了DataTable上的RowChanged事件,存储了FirstDisplayedScrollingRowIndex,调用了一个以该索引为参数的委托方法,然后将FirstDisplayedScrollingRowIndex重置为委托方法内的该参数。事实证明,自动滚动只有在所有事件都被触发之后才会发生,所以尝试在事件中对其进行黑客攻击是没用的。委托工作,因为它是在事件之后调用的。

    推荐文章