📄 listview如何按数字大小排序.txt
字号:
ListView默 认 是 按 照 文 字 排 序 , 如 果 要 按 照 数 值 排 序 , 一 个 是 将 Sorted属 性 设 为 False, 而 自 己 编 写 一 个 排 序 程 序 做 这 件 事 。 另 一 个 办 法 是 利 用 Windows API的 LVM_SORTITEMS消 息 来 指 定 自 己 的 一 个 比 较 大 小 的 函 数 来 取 代 ListView默 认 的 函 数 。
<END>
在 点 击 数 字 列 头 的 事 件 中 ,首 先 将 数 字 变 一 下 格 式 ,将 列 的 内 容 变 为 :format(列 的 内 容 ,"000000000000"), 再 将 listview控 件 的 索 引 值 设 为 TRUE,最 后 将 列 的 内 容 改 回 来 val(列 的 内 容 )。
'在 form上 加 listview1控 件 ,view值 设 为 3,加 上 下 面 一 段 程 序
Private Sub Form_Load()
ListView1.ColumnHeaders.Add , , "Size"
For i = 1 To 100
ListView1.ListItems.Add , , Int(Rnd * 10000)
Next
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Dim i As Integer
ListView1.SortKey = ColumnHeader.Index - 1
'以 下 是 按 SIZE排 序 的 程 序
If ColumnHeader.Text = "Size" Then
For i = 1 To ListView1.ListItems.Count
ListView1.ListItems(i).Text = Format(ListView1.ListItems(i).Text, "000000000000")
Next
If ListView1.SortOrder = lvwDescending Then
ListView1.SortOrder = lvwAscending
Else
ListView1.SortOrder = lvwDescending
End If
ListView1.Sorted = True
For i = 1 To ListView1.ListItems.Count
ListView1.ListItems(i).Text = Val(ListView1.ListItems(i).Text)
Next
End If
End Sub
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -