两个完全相同的DataGridView,怎么实现其中一个DataGridView的滚动条控件同时DataGridView滚动

时间:2021-06-07 21:42:48
我在窗口上放了两个DataGridView ,里边的数据和界面都完全一样,怎么实现,拖动其中一个DataGridView的滚动条,另一个DataGridView也相应的变化。

4 个解决方案

#1


在1的scroll事件中控制2的滚动条

#2


我试过了好多方法,都行不通,稍为好一点的方案就是:
在dataGridView1 的 scroll 事件里加上
protected override void OnScroll(ScrollEventArgs e)
        {
               int displayIndex = e.NewValue * _dt.Columns.Count / this.Width;
               dataGridView12 .FirstDisplayedScrollingColumnIndex = displayIndex;
                   
        }//_dt是两个DataGridView绑定的DataTable;
可是这样的话,有隐藏列时就会报错,还有就是拖动dataGridView1 时dataGridWiew2的第一列要不全显示,要不不显示,我有时想实现显示一半就不行了。

#3


处理的关键应该是 在1的scroll事件中控制2的滚动条;但具体要怎么处理,有点难度

#4


刚才又试过了
在dataGridView1 的 scroll 事件里加上
protected override void OnScroll(ScrollEventArgs e)
        {
            base.OnScroll(e);
           
            _dataGridView2 .FirstDisplayedScrollingColumnIndex = dataGridView1.FirstDisplayedScrollingColumnIndex;
            }
           // base.OnScroll(e);
        }_dt是两个DataGridView绑定的DataTable;

还是不行

#1


在1的scroll事件中控制2的滚动条

#2


我试过了好多方法,都行不通,稍为好一点的方案就是:
在dataGridView1 的 scroll 事件里加上
protected override void OnScroll(ScrollEventArgs e)
        {
               int displayIndex = e.NewValue * _dt.Columns.Count / this.Width;
               dataGridView12 .FirstDisplayedScrollingColumnIndex = displayIndex;
                   
        }//_dt是两个DataGridView绑定的DataTable;
可是这样的话,有隐藏列时就会报错,还有就是拖动dataGridView1 时dataGridWiew2的第一列要不全显示,要不不显示,我有时想实现显示一半就不行了。

#3


处理的关键应该是 在1的scroll事件中控制2的滚动条;但具体要怎么处理,有点难度

#4


刚才又试过了
在dataGridView1 的 scroll 事件里加上
protected override void OnScroll(ScrollEventArgs e)
        {
            base.OnScroll(e);
           
            _dataGridView2 .FirstDisplayedScrollingColumnIndex = dataGridView1.FirstDisplayedScrollingColumnIndex;
            }
           // base.OnScroll(e);
        }_dt是两个DataGridView绑定的DataTable;

还是不行