Кажется, что сортировка по флажку не встроена в просмотр списка.Вы можете решить эту проблему, добавив еще один невидимый столбец рядом с флажком.Вы должны синхронизировать это с флажком - это можно легко сделать с помощью события 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
необходимо установить .SortKey
в 1, если ColumnHeader.Index = 1