So-net無料ブログ作成
検索選択

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 の値を設定するため、値が大きいものについてはオーバーフローするので注意を要する。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。