DataGirdViewのSortCompare利用上の注意

DataGirdViewのカラムソートは文字列比較がデフォルトだ。
これを好みの比較に変更するにはDataGirdViewのSortCompareイベントを実装する。
この時注意しなければならないのは比較対象が同一文字列である場合に必ず0(一致)をSortResultに設定しなければならないことだ。
0以外の値を設定するとDataGirdView本体がindex out of rangeの例外をはく。
これを避けるためには以下のコーディングが定石だ。

Private Sub _grid_SortCompare(ByVal sender As Object, 
ByVal e As System.Windows.Forms.DataGridViewSortCompareEventArgs)
                                        Handles _grid.SortCompare
  e.SortResult = System.String.Compare(e.CellValue1.ToString(), e.CellValue2.ToString())
  If e.SortResult <> 0 Then
    '----------
    ' 比較処理
    '----------
  End If
  e.Handled = True
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です