DataGridViewで数値順に並び替える [DataGridView]
----------------------------------------------------------
(開発・実行環境)
Microsoft Visual Studio 2005 Tools for Applications
Microsoft Visual Basic 2005
----------------------------------------------------------
DataGridViewのColumnヘッダをクリックしてソートする際、文字列順に並び変わる。
これを、特定のColumnにおいて、数値順に並び替えたい。
CellStyleのFormatを数値にしても効いてくれない。
どうもDataGridView全体で制御されてるみたい?
この場合、SortCompare イベントを使って解決。
イベント内に以下のコードを書くのみ(適宜カスタムしてね)。
If e.Column.Index = (特定のColumn) Then
e.SortResult = CInt(e.CellValue1) - CInt(e.CellValue2)
e.Handled = True
End If
たったこれだけなんて・・・。
このイベントは秀逸だわ。
参考)
http://dobon.net/vb/dotnet/datagridview/customsort.html
http://oshiete1.goo.ne.jp/qa3026757.html
(追記)
ただし、上記の e.SortResult プロパティはInteger の値を設定するため、値が大きいものについてはオーバーフローするので注意を要する。
コメント 0