excel - 按选中的项目排序列表视图
问题描述
我在表单上有一个 listview 控件,所有列的左侧都有一个隐藏列,我用它来正确排序数字。
我想对项目进行排序,以便首先检查项目。
这是我现在用来排序的代码,但它并没有为 Checked 项目做这项工作。
Private Sub lstProgramOrder_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With lstProgramOrder
.SortKey = IIf(ColumnHeader.Index = 1, 1, ColumnHeader.Index - 2)
If .SortOrder = lvwAscending Then
.SortOrder = lvwDescending
Else
.SortOrder = lvwAscending
End If
.Sorted = True
End With
End Sub
解决方案
似乎按复选框排序并没有内置到列表视图中。您可以通过在复选框旁边添加另一个不可见的列来解决这个问题。您必须将此与复选框保持同步 - 这可以通过 be event 轻松完成ItemCheck
(在您的情况下lstProgramOrder_ItemCheck
)。
您只需要下定决心要在该新列中写入什么。我选择0
为已选中和1
未选中编写,以便将选中的项目排序到顶部。假设在复选框(索引 1)旁边添加了这个虚拟列:
Private Sub lstProgramOrder_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Item.ListSubItems(1) = IIf(Item.Checked, "0", "1")
End Sub
然后,在您的Column_Click
-routine 中,您必须设置.SortKey
为 1 ifColumnHeader.Index = 1
推荐阅读
- html - 对齐标签和输入标签
- mysql - 创建 SQL 视图
- ssms - 如何在 MySql 中从单元格中间提取单词?
- java - 提高 Alog 的效率(将数组向左旋转 n 次迭代)
- php - 将 WooCommerce 自定义帐号字段值限制为仅限数字
- java - Android:NullPointerException'double java.lang.Double.doubleValue()'
- python - 从 PDF 中识别不可选择的图像
- excel - 希望下面的代码等同于带有格式的 Vlookup。有什么建议么。Excel VBA
- unity3d - 使用放大着色器进行框边界的横截面着色器
- blazor - 我可以结合服务器和客户端模型吗?