3个回答
展开全部
(我只是猜的没有测试)1.定义一个数组,有list1.listcount个元素,每个元素的数值等于它的下标。
2.h翻3600倍,m翻60倍,s不变,三者相加,存到另一个对应的数组中,把该数组排序,一边排序一边按此打乱第1步中的数组,再依照此排序还原列表。
(我只是猜)
2.h翻3600倍,m翻60倍,s不变,三者相加,存到另一个对应的数组中,把该数组排序,一边排序一边按此打乱第1步中的数组,再依照此排序还原列表。
(我只是猜)
更多追问追答
追问
我也这样想过,但代码写起来却遇到了很多困难,最后没成功。你能发一下代码吗,谢谢!
追答
对不起今天有点晚了明天行么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建一个函数,参数中包括该排序项是否为数字,不是数字直接排序,是数字经过处理。
以下是我写的函数:
Public Sub ResortListview(ByVal m_listview As ListView, ByVal m_ColIndex As Integer, Optional ByVal IsNumber As Boolean = False) 'optional 指定默认参数
'以指定序号的列重排表格。不能对数字进行排序
m_listview.Columns.Add("")
Dim i, j As Integer
For i = 0 To m_listview.Items.Count - 1
m_listview.Items(i).SubItems.Add("")
For j = m_listview.Columns.Count - 1 To 1 Step -1
m_listview.Items(i).SubItems(j).Text = m_listview.Items(i).SubItems(j - 1).Text
Next j
If IsNumber Then
m_listview.Items(i).SubItems(0).Text = Format(CDbl(m_listview.Items(i).SubItems(m_ColIndex + 1).Text.ToString), "0000000000.0000000000") '如果排序参数是数字,转换格式排序
Else
m_listview.Items(i).SubItems(0).Text = m_listview.Items(i).SubItems(m_ColIndex + 1).Text '设置第一列为指定要排序的列的数据,用于排序
End If
Next i
If m_listview.Sorting = SortOrder.Ascending Then
m_listview.Sorting = SortOrder.Descending
Else
m_listview.Sorting = SortOrder.Ascending
End If
For i = 0 To m_listview.Items.Count - 1
For j = 0 To m_listview.Columns.Count - 2
m_listview.Items(i).SubItems(j).Text = m_listview.Items(i).SubItems(j + 1).Text
Next j
m_listview.Items(i).SubItems.RemoveAt(m_listview.Columns.Count - 1)
Next i
m_listview.Columns.RemoveAt(m_listview.Columns.Count - 1)
End Sub
‘对于时间,在listview里要设置好它的格式为"yyyy年MM月dd日",注意区分大小写,然后就可以按字符串一样的排序了。
以下是我写的函数:
Public Sub ResortListview(ByVal m_listview As ListView, ByVal m_ColIndex As Integer, Optional ByVal IsNumber As Boolean = False) 'optional 指定默认参数
'以指定序号的列重排表格。不能对数字进行排序
m_listview.Columns.Add("")
Dim i, j As Integer
For i = 0 To m_listview.Items.Count - 1
m_listview.Items(i).SubItems.Add("")
For j = m_listview.Columns.Count - 1 To 1 Step -1
m_listview.Items(i).SubItems(j).Text = m_listview.Items(i).SubItems(j - 1).Text
Next j
If IsNumber Then
m_listview.Items(i).SubItems(0).Text = Format(CDbl(m_listview.Items(i).SubItems(m_ColIndex + 1).Text.ToString), "0000000000.0000000000") '如果排序参数是数字,转换格式排序
Else
m_listview.Items(i).SubItems(0).Text = m_listview.Items(i).SubItems(m_ColIndex + 1).Text '设置第一列为指定要排序的列的数据,用于排序
End If
Next i
If m_listview.Sorting = SortOrder.Ascending Then
m_listview.Sorting = SortOrder.Descending
Else
m_listview.Sorting = SortOrder.Ascending
End If
For i = 0 To m_listview.Items.Count - 1
For j = 0 To m_listview.Columns.Count - 2
m_listview.Items(i).SubItems(j).Text = m_listview.Items(i).SubItems(j + 1).Text
Next j
m_listview.Items(i).SubItems.RemoveAt(m_listview.Columns.Count - 1)
Next i
m_listview.Columns.RemoveAt(m_listview.Columns.Count - 1)
End Sub
‘对于时间,在listview里要设置好它的格式为"yyyy年MM月dd日",注意区分大小写,然后就可以按字符串一样的排序了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
留下QQ给你个示例。
追问
已解决
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询