简体   繁体   English

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

[英]Using one scroll bar to control two DataGridView

我正在尝试控制两个DataGridView,仅其中一个DataGridView垂直滚动条可见。

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

If both DataGridView controls have equal number of rows, you can do the following. 如果两个DataGridView控件的行数相等,则可以执行以下操作。 I am using this to compare two SQL resultsets side by side. 我正在用它来比较两个SQL结果集。

Set Scroll event handlers on both controls. 在两个控件上设置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;
}

In Form.Load(): 在Form.Load()中:

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

Edit: We can't assign Grid2.VerticalScrollingOffset as I had originally suggested, as it's a ReadOnly property. 编辑:我们不能像我最初建议的那样分配Grid2.VerticalScrollingOffset,因为它是ReadOnly属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM