2011年4月12日火曜日

DataGridViewのソート(sort)連動させる方法

'----------------------------------------------------------------------------------------------



'ソートが完了したとき


'グリッド2もソートする


'----------------------------------------------------------------------------------------------

Private Sub DataGridView1_Sorted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.Sorted

'------------------------------------------------------------------------------------------


'機能:データグリッド連動ソート


'メモ:DataGridView1のソート順が変更されたら、


'   DataGridView2のソート順も連動して変更させる処理


'------------------------------------------------------------------------------------------


'ソートが実施されたカラム

  Dim srtdCol As DataGridViewColumn = Me.DataGridView1.SortedColumn

'オーダー順序はヘッダーから取得(SortGlyphDirection)

  Dim srtdOrder As SortOrder = Me.DataGridView1.Columns(srtdCol.Index).HeaderCell.SortGlyphDirection

'並び替えが実施されると昇順、降順のどちらかでNoneは指定されなくなる


  If srtdOrder = SortOrder.Ascending Then

  'Ascending

    Me.DataGridView2.Sort(Me.DataGridView2.Columns(srtdCol.Index),   System.ComponentModel.ListSortDirection.Ascending)

  ElseIf srtdOrder = SortOrder.Descending Then

    'Descending

    Me.DataGridView2.Sort(Me.DataGridView2.Columns(srtdCol.Index), System.ComponentModel.ListSortDirection.Descending)

  End If

End Sub

2011年4月7日木曜日

DataGridViewが2つあり片方がソートされたらもう一方もソートするには?

'----------------------------------------------------------------------------------------------


'ソートが完了したとき

'グリッド2もソートする

'----------------------------------------------------------------------------------------------

Private Sub DataGridView1_Sorted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.Sorted

'------------------------------------------------------------------------------------------

'機能:データグリッド連動ソート

'メモ:DataGridView1のソート順が変更されたら、

'   DataGridView2のソート順も連動して変更させる処理

'------------------------------------------------------------------------------------------

'ソートが実施されたカラム

Dim srtdCol As DataGridViewColumn = Me.DataGridView1.SortedColumn

'オーダー順序はヘッダーから取得(SortGlyphDirection)

Dim srtdOrder As SortOrder = Me.DataGridView1.Columns(srtdCol.Index).HeaderCell.SortGlyphDirection

'並び替えが実施されると昇順、降順のどちらかでNoneは指定されなくなる

If srtdOrder = SortOrder.Ascending Then

'Ascending

Me.DataGridView2.Sort(Me.DataGridView2.Columns(srtdCol.Index), System.ComponentModel.ListSortDirection.Ascending)

ElseIf srtdOrder = SortOrder.Descending Then

'Descending

Me.DataGridView2.Sort(Me.DataGridView2.Columns(srtdCol.Index), System.ComponentModel.ListSortDirection.Descending)

End If

End Sub

DataGridViewで2つのグリッドを連動させてスクロールするには?

'----------------------------------------------------------------------------------------------


'スクロール時に2つのグリッドを連動して動かす

'----------------------------------------------------------------------------------------------

Private Sub DataGridView1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles DataGridView1.Scroll

'カラム ※あまり効果ない

Me.DataGridView2.FirstDisplayedScrollingColumnIndex = Me.DataGridView1.FirstDisplayedScrollingColumnIndex

'カラム

Me.DataGridView2.HorizontalScrollingOffset = Me.DataGridView1.HorizontalScrollingOffset

'行

Me.DataGridView2.FirstDisplayedScrollingRowIndex = Me.DataGridView1.FirstDisplayedScrollingRowIndex

End Sub