我有两个DataGridViews
,一个在另一个之上,在我的表单中有同步滚动条,就像在这个answer中一样。但是,同步只是一种方式,因为我已将网格的滚动条隐藏在顶部,仅显示两个网格的一个滚动条。滚动条时同步工作正常,但是当调整网格大小时,顶部网格的HorizontalScrollingOffset
(具有以编程方式滚动的隐藏滚动条的那个)将重置为0。
我认为这是因为滚动条隐藏在顶部网格中,因此滚动条无法保持滚动值,但尚未能找到解决方案/解决方法。
有人知道如何在DataGridView
调整大小时阻止隐藏滚动条的DataGridView
重置吗?
答案 0 :(得分:1)
private int scrollPosition = 0;
private void dataGridView_Scroll(object sender, ScrollEventArgs e)
{
// While scrolling, keep track of the scroll position
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
this.scrollPosition = e.NewValue;
}
}
private void dataGridView_Resize(object sender, EventArgs e)
{
// Re-scroll back to where we were
dataGridView.HorizontalScrollingOffset = this.scrollPosition;
}