使用一个滚动条来控制两个DataGridView

我试图控制两个DataGridView,只有一个DataGridView垂直滚动条可见。

protected void grid1_Scroll(object sender, ScrollEventArgs e) { grid2.VerticallScrollBar.Value = e.NewValue; } 

如果两个DataGridView控件具有相同的行数,则可以执行以下操作。 我用它来并排比较两个SQL结果集。

在两个控件上设置Scroll事件处理程序。

 private void DataGridView1_Scroll(object sender, ScrollEventArgs e) { DataGridView2.FirstDisplayedScrollingRowIndex = DataGridView1.FirstDisplayedScrollingRowIndex; } private void DataGridView2_Scroll(object sender, ScrollEventArgs e) { DataGridView1.FirstDisplayedScrollingRowIndex = DataGridView2.FirstDisplayedScrollingRowIndex; } 

在Form.Load()中:

 Grid1.Scroll += (s, ev) => Grid2.VerticalScrollBar.Value = Grid1.VerticalScrollBar.Value; 

编辑:我们不能像我最初建议的那样分配Grid2.VerticalScrollingOffset,因为它是ReadOnly属性。