问题
I need to synchronize the scroll event of two DataGridView controls, so that when I horizontally scroll the first DGV, second DGV also should be scrolled in the same way.
Is it possible? Could this be set in design time?
回答1:
This can be done in code as follows. You may be looking for a C# way of doing it. But following is a code I used in a VB.NET application. Just convert it to C# ;)
For First Grid write...
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
For Second Grid write...
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
Hope this helped?
来源:https://stackoverflow.com/questions/24466721/sync-horizontal-scroll-event-of-two-datagridviews