具有同步滚动条的 DataGridViews:滚动条位置在调整大小时重置

本文关键字:滚动条 调整 小时 同步 DataGridViews 位置 | 更新日期: 2023-09-27 18:34:27

我有两个DataGridViews,一个在另一个之上,在我的表单中带有同步滚动条,就像这个答案一样。但是,同步只是一种方法,因为我将网格的滚动条隐藏在顶部,只显示两个网格的一个滚动条。 滚动滚动条时同步工作正常,但在调整网格大小时,顶部网格(具有以编程方式滚动的隐藏滚动条的网格)的HorizontalScrollingOffset将重置为 0。

我认为这是因为滚动条对于

顶部网格是隐藏的,因此滚动条无法容纳滚动值,但尚未找到解决方案/解决方法。有谁知道如何防止带有隐藏滚动条的DataGridView在调整DataGridView大小时重置?

具有同步滚动条的 DataGridViews:滚动条位置在调整大小时重置

    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;
    }