我需要同步两个DataGridView
控件的滚动事件,以便当我水平滚动第一个DGV时,第二个DGV也应该以相同的方式滚动。
这是可能的吗?这可以在设计时设置吗?
我需要同步两个DataGridView
控件的滚动事件,以便当我水平滚动第一个DGV时,第二个DGV也应该以相同的方式滚动。
这是可能的吗?这可以在设计时设置吗?
这可以通过以下代码完成。您可能正在寻找 C# 的实现方式,但以下是我在 VB.NET 应用程序中使用的代码。只需将其转换为 C# ;)
对于第一个网格,编写...
Private Sub DataGridView1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles DataGridView1.Scroll
If e.ScrollOrientation = ScrollOrientation.VerticalScroll Then Exit Sub
If Me.DataGridView2.Rows.Count > 0 And Me.DataGridView1.Rows.Count > 0 Then
Me.DataGridView2.HorizontalScrollingOffset = e.NewValue 'Me.DataGridView1.HorizontalScrollingOffset
End If
End Sub
对于第二个网格,请编写...
Private Sub DataGridView2_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles DataGridView2.Scroll
If e.ScrollOrientation = ScrollOrientation.VerticalScroll Then Exit Sub
If Me.DataGridView1.Rows.Count > 0 And Me.DataGridView2.Rows.Count > 0 Then
Me.DataGridView1.HorizontalScrollingOffset = e.NewValue 'Me.DataGridView2.HorizontalScrollingOffset
End If
End Sub
希望这有帮助吗?
然后将相同的内容添加到两个位置:
private void dataGridViewLeft_Scroll(object sender, ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll && dataGridViewLeft.Rows.Count > 0 && dataGridViewRight.Rows.Count > 0)
{
dataGridViewRight.HorizontalScrollingOffset = dataGridViewLeft.HorizontalScrollingOffset;
}
}
private void dataGridViewRight_Scroll(object sender, ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll && dataGridViewRight.Rows.Count > 0 && dataGridViewLeft.Rows.Count > 0)
{
dataGridViewLeft.HorizontalScrollingOffset = dataGridViewRight.HorizontalScrollingOffset;
}
}