DataGridViewのデータをソートする方法をご紹介します。
DataGridViewの初期設定では、
列の一番上の項目(カラムヘッダー)をクリックすると、
自動でソートされるようになっています。
上記、Noをクリックすると、昇順でソートされる。
上記、もう一度 Noをクリックすると、降順でソートされる。
プログラムからソートさせる方法
プログラムから手動でソートさせる事もできます。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'列ソートを禁止にする
DataGridView1.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
DataGridView1.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
DataGridView1.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
DataGridView1.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
DataGridView1.Sort(DataGridView1.Columns(3),
System.ComponentModel.ListSortDirection.Descending)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
DataGridView1.Sort(DataGridView1.Columns(0),
System.ComponentModel.ListSortDirection.Ascending)
End Sub
まず、DataGridViewの「カラムヘッダークリック」で
ソートする機能をオフにしておきます。
DataGridView1.Columns(0).SortMode =
DataGridViewColumnSortMode.NotSortable
これでカラムヘッダーをクリックしてもソートされなくなります。
(1カラムごとに設定する必要があります)
全てのカラムで同じ設定にしたい場合には、
For Each文が便利です。
For Each c As DataGridViewColumn In DataGridView1.Columns
c.SortMode = DataGridViewColumnSortMode.NotSortable
Next c
実際にソートさせるには、Sortメソッドを使用します。
第1引数にはソート基準となるカラムを指定し、
第2引数に昇順か降順かを指定します。
上記、ボタン1クリックで「価格」でソート(降順)
上記、ボタン2クリックで「No」でソート(昇順)