DataGridViewの列をふりがなで並び替え[VB]

メモとして。

方法としては「名前」と「ふりがな」データを持つクラスをつくり「ToString」では「名前」を返し、比較は「ふりがな」でするようにします。

StringWithClass.vb

<code>Imports System
Imports System.Collections

Public Class StringWithKanaClass
    ' IComparableインターフェイスをインプリメント
    Implements IComparable

    ' メンバ
    Public Name As String
    Public Kana As String

    Public Sub New()
    End Sub

    Public Sub New(ByVal Name As String, ByVal Kana As String)
        MyClass.Name = Name
        MyClass.Kana = Kana
    End Sub

    ' ToString()は「Name」を返す
    Public Overrides Function ToString() As String
        Return Name
    End Function

    '比較する関数
    Public Function CompareTo(ByVal o As Object) As _
                                    Integer Implements IComparable.CompareTo
        '自分と同じ型の場合のみ比較
        If TypeOf o Is StringWithKanaClass Then
            Dim g As StringWithKanaClass = CType(o, StringWithKanaClass)
            Select Case Me.Kana.CompareTo(g.Kana)
                Case 0
                    Return 0
                Case Is &gt; 0
                    Return 1
                Case Is &lt; 0
                    Return -1
            End Select
        End If
        Return 0
    End Function
End Class</code>

DetaGridViewのセルには以下のように代入

<code>DataGridView1(c, i).Value = New StringWithKanaClass("名前","なまえ")</code>

コメントを残す

メールアドレスが公開されることはありません。

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*