Сортировать просмотр списка по пункту проверено - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть элемент управления списком в форме, и все столбцы имеют скрытый столбец слева, который я использую для правильной сортировки чисел.

Я бы хотел отсортировать элементы так, чтобы проверенные элементы были первыми.

Это код, который я использую для сортировки прямо сейчас, но он не выполняет работу с проверенным элементом.

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

1 Ответ

0 голосов
/ 19 ноября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...