Vb.net 如果列是整数/长,则按值排序;如果列是ListView中的日期列,则按日期排序
单击列时,我使用以下代码对listview进行排序:Vb.net 如果列是整数/长,则按值排序;如果列是ListView中的日期列,则按日期排序,vb.net,Vb.net,单击列时,我使用以下代码对listview进行排序: Imports System.Collections 导入System.Windows.Forms 公共类ListViewColumnSorter 实现System.Collections.IComparer Private ColumnToSort As Integer Private OrderOfSort As SortOrder Private ObjectCompare As CaseInsensitiveComparer Pu
Imports System.Collections
导入System.Windows.Forms
公共类ListViewColumnSorter
实现System.Collections.IComparer
Private ColumnToSort As Integer
Private OrderOfSort As SortOrder
Private ObjectCompare As CaseInsensitiveComparer
Public Sub New()
' Initialize the column to '0'.
ColumnToSort = 0
' Initialize the sort order to 'none'.
OrderOfSort = SortOrder.None
' Initialize the CaseInsensitiveComparer object.
ObjectCompare = New CaseInsensitiveComparer()
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
Dim compareResult As Integer
Dim listviewX As ListViewItem
Dim listviewY As ListViewItem
' Cast the objects to be compared to ListViewItem objects.
listviewX = CType(x, ListViewItem)
listviewY = CType(y, ListViewItem)
' Compare the two items.
compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)
' Calculate the correct return value based on the object
' comparison.
If (OrderOfSort = SortOrder.Ascending) Then
' Ascending sort is selected, return typical result of
' compare operation.
Return compareResult
ElseIf (OrderOfSort = SortOrder.Descending) Then
' Descending sort is selected, return negative result of
' compare operation.
Return (-compareResult)
Else
' Return '0' to indicate that they are equal.
Return 0
End If
End Function
Public Property SortColumn() As Integer
Set(ByVal Value As Integer)
ColumnToSort = Value
End Set
Get
Return ColumnToSort
End Get
End Property
Public Property Order() As SortOrder
Set(ByVal Value As SortOrder)
OrderOfSort = Value
End Set
Get
Return OrderOfSort
End Get
End Property
末级
msdn站点位于:
这只是通过文本对列进行排序。我需要一些帮助来修改它,以便在列为整数/长时按值排序,在列为日期列时按日期排序
我可以修改此行:compareResult=ObjectCompare.ComparelistviewX.SubItemsColumntSort.Text、listviewY.SubItemsColumntSort.Text,以通过日期/整数等进行排序,但我必须手动对其进行编码。有没有办法检测我单击的列是否是日期/长度/整数列。。。也许是通过特里帕斯
谢谢