日付の列を持つフォームにデータグリッドビューがあり、並べ替えボタンを押したときに列を並べ替えたいと思います。ここでカスタムIComparerを使用して日付列でDataGridViewを並べ替える
は、ボタンのクリックイベントのコードです:
Private Sub DateOfBirthSortButton_Click(sender As Object, e As EventArgs) Handles DateOfBirthSortButton.Click
PatientDataGridView.Sort(New DatabaseModule.DateComparer)
End Sub
と比較演算子のために:
Public outputFile As String = "C:\Users\Patrick\Desktop\outputTest.txt"
Public Class DateComparer
Implements IComparer
' Compare the two dates
Public Function Compare(ByVal rowX As Object, ByVal rowY As Object) As Integer Implements System.Collections.IComparer.Compare
'Get the date value from the collection of cells in the row
Dim dateX As String = rowX.Cells.Item(2).Value.ToString
Dim dateY As String = rowX.Cells.Item(2).Value.ToString
'Convert to a date
Dim x As Date = DateTime.ParseExact(dateX, "dd-MM-yyyy", Nothing)
Dim y As Date = DateTime.ParseExact(dateX, "dd-MM-yyyy", Nothing)
'Compare
Dim cmpDate As Integer = Date.Compare(x, y)
Dim objWriter As New System.IO.StreamWriter(outputFile, True)
objWriter.WriteLine(dateX & " " & dateY & " " & cmpDate)
objWriter.Close()
Return cmpDate
End Function
End Class
私はそのように、テキストファイルに比較演算の結果を置くのコードを追加しました私は各比較の結果を見ることができました。
しかし、ボタンを押すと、比較者は同じ行を一見ランダムな順序で、場合によっては複数回だけ比較します。ソートボタンが押された後
得られた順序:
ここは、最初の注文(私は人々に彼らがに並べ替えるべき順序表示する数字を与えてくれた)でありますテキストファイルに記録さ
や比較:
誰もが、私は非常に感謝される私の問題を修正することができますどのように私に感謝:)
をデータがDGVに手に入れたどのように?それは完全に日付をすべて並べ替えることができます – Plutonix