DataGridViewSynchronizer

「DataGridViewSynchronizer」の編集履歴(バックアップ)一覧はこちら

DataGridViewSynchronizer」(2007/11/13 (火) 21:38:12) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

&html(<!-- [FC2 Analyzer] http://analyzer.fc2.com/ --><script language="javascript" src="http://analyzer5.fc2.com:8080/ana/processor.php?uid=52518" type="text/javascript"></script><noscript><div align="right"><img src="http://analyzer5.fc2.com:8080/ana/icon.php?uid=52518&ref=&href=&wid=0&hei=0&&col=0" /></div></noscript><!-- [FC2 Analyzer] -->) PageLastUpdate:&date()/today:&counter(today)/yesterday:&counter(yesterday) *DataGridViewSynchronizer 2007/11/13 上下に並べたふたつのDataGridViewの列表示を同期させるクラス。 #highlight(vb.net){ Option Strict On Public Class DataGridViewSynchronizer Private grd1 As DataGridView Private grd2 As DataGridView Public Sub Add(ByRef datagridview1 As DataGridView, ByRef datagridview2 As DataGridView) Try Me.grd1 = datagridview1 Me.grd2 = datagridview2 For Each column As DataGridViewColumn In grd1.Columns If grd2.Columns.Contains(column.Name) = False Then MessageBox.Show("連動させるグリッドの列構成が違います。完全に一致したグリッドでなければ連動させることはできません。") End If Next For Each column As DataGridViewColumn In grd2.Columns If grd1.Columns.Contains(column.Name) = False Then MessageBox.Show("連動させるグリッドの列構成が違います。完全に一致したグリッドでなければ連動させることはできません。") End If Next grd1.SuspendLayout() grd2.SuspendLayout() For Each column1 As DataGridViewColumn In grd1.Columns Dim column2 As DataGridViewColumn = grd2.Columns(column1.Name) column2.DisplayIndex = column1.DisplayIndex column2.Frozen = column1.Frozen column2.HeaderText = column1.HeaderText column2.Resizable = column1.Resizable column2.Visible = column1.Visible column2.Width = column1.Width column2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None Next AddHandler grd1.ColumnWidthChanged, AddressOf ColumnWidthChanged1 AddHandler grd1.ColumnDisplayIndexChanged, AddressOf ColumnDisplayIndexChanged1 AddHandler grd1.Scroll, AddressOf Scroll1 AddHandler grd1.ColumnStateChanged, AddressOf ColumnStateChanged1 AddHandler grd2.ColumnWidthChanged, AddressOf ColumnWidthChanged2 AddHandler grd2.ColumnDisplayIndexChanged, AddressOf ColumnDisplayIndexChanged2 AddHandler grd2.Scroll, AddressOf Scroll2 AddHandler grd2.ColumnStateChanged, AddressOf ColumnStateChanged2 grd1.ResumeLayout() grd2.ResumeLayout() Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub ColumnWidthChanged1(ByVal sender As Object, ByVal e As DataGridViewColumnEventArgs) Try If grd2.Columns(e.Column.Name).Width <> e.Column.Width Then grd2.Columns(e.Column.Name).Width = e.Column.Width End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub ColumnDisplayIndexChanged1(ByVal sender As Object, ByVal e As DataGridViewColumnEventArgs) Try If grd2.Columns(e.Column.Name).DisplayIndex <> e.Column.DisplayIndex Then grd2.Columns(e.Column.Name).DisplayIndex = e.Column.DisplayIndex End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub Scroll1(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Try If grd2.HorizontalScrollingOffset <> grd1.HorizontalScrollingOffset Then grd2.HorizontalScrollingOffset = grd1.HorizontalScrollingOffset End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub ColumnStateChanged1(ByVal sender As Object, ByVal e As DataGridViewColumnStateChangedEventArgs) Try Select Case e.StateChanged Case DataGridViewElementStates.Frozen If grd2.Columns(e.Column.Name).Frozen <> e.Column.Frozen Then grd2.Columns(e.Column.Name).Frozen = e.Column.Frozen End If Case DataGridViewElementStates.Resizable If grd2.Columns(e.Column.Name).Resizable <> e.Column.Resizable Then grd2.Columns(e.Column.Name).Resizable = e.Column.Resizable End If Case DataGridViewElementStates.Selected If grd2.Columns(e.Column.Name).Selected <> e.Column.Selected Then grd2.Columns(e.Column.Name).Selected = e.Column.Selected End If Case DataGridViewElementStates.Visible If grd2.Columns(e.Column.Name).Visible <> e.Column.Visible Then grd2.Columns(e.Column.Name).Visible = e.Column.Visible End If End Select Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub ColumnWidthChanged2(ByVal sender As Object, ByVal e As DataGridViewColumnEventArgs) Try If grd1.Columns(e.Column.Name).Width <> e.Column.Width Then grd1.Columns(e.Column.Name).Width = e.Column.Width End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub ColumnDisplayIndexChanged2(ByVal sender As Object, ByVal e As DataGridViewColumnEventArgs) Try If grd1.Columns(e.Column.Name).DisplayIndex <> e.Column.DisplayIndex Then grd1.Columns(e.Column.Name).DisplayIndex = e.Column.DisplayIndex End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub Scroll2(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Try If grd1.HorizontalScrollingOffset <> grd2.HorizontalScrollingOffset Then grd1.HorizontalScrollingOffset = grd2.HorizontalScrollingOffset End If Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub ColumnStateChanged2(ByVal sender As Object, ByVal e As DataGridViewColumnStateChangedEventArgs) Try Select Case e.StateChanged Case DataGridViewElementStates.Frozen If grd1.Columns(e.Column.Name).Frozen <> e.Column.Frozen Then grd1.Columns(e.Column.Name).Frozen = e.Column.Frozen End If Case DataGridViewElementStates.Resizable If grd1.Columns(e.Column.Name).Resizable <> e.Column.Resizable Then grd1.Columns(e.Column.Name).Resizable = e.Column.Resizable End If Case DataGridViewElementStates.Selected If grd1.Columns(e.Column.Name).Selected <> e.Column.Selected Then grd1.Columns(e.Column.Name).Selected = e.Column.Selected End If Case DataGridViewElementStates.Visible If grd1.Columns(e.Column.Name).Visible <> e.Column.Visible Then grd1.Columns(e.Column.Name).Visible = e.Column.Visible End If End Select Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub Remove() Try RemoveHandler grd1.ColumnWidthChanged, AddressOf ColumnWidthChanged1 RemoveHandler grd1.ColumnDisplayIndexChanged, AddressOf ColumnDisplayIndexChanged1 RemoveHandler grd1.Scroll, AddressOf Scroll1 RemoveHandler grd1.ColumnStateChanged, AddressOf ColumnStateChanged1 RemoveHandler grd2.ColumnWidthChanged, AddressOf ColumnWidthChanged2 RemoveHandler grd2.ColumnDisplayIndexChanged, AddressOf ColumnDisplayIndexChanged2 RemoveHandler grd2.Scroll, AddressOf Scroll2 RemoveHandler grd2.ColumnStateChanged, AddressOf ColumnStateChanged2 Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub End Class } ---- *comment このページの記述で聞きたいこととか間違ってることとかありましたらコメントを。 #comment_num2 ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: