powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView - сортировка
5 сообщений из 5, страница 1 из 1
ListView - сортировка
    #32732265
golb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем обычный ListView. Понятно, как можно организовать сортировку по тексту в одном столбце при клике на заголовок. А вот как организовать сортировку:
а) по столбцу ListView, содержащему даты
б) по нескольким столбцам (как в Excel)
Прошу прощения, если это вопросы, ответы на которые есть в хелпе MSDN. Просто пытаюсь сэкономить время на поиске. Его (времени) совсем нет!!!
Спасибо за внимание.
...
Рейтинг: 0 / 0
ListView - сортировка
    #32732357
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартных способов нет.

HOWTO: Sort a ListView Control by Date
+
google
...
Рейтинг: 0 / 0
ListView - сортировка
    #32732455
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нет необходимости работать с коллекцией Items, то можно воспользоваться советом из MSDN от Alexey Kudinov. В противном случае можно воспользоваться следующим алгоритмом:
Содержимое Item.Text запоминается в Item.Tag и заменяется на отформатированное под сортировку строковое представление(Например - Format(dateText,"yyyymmdd")) , после чего производится сортировка и восстановление прежних значений Item.Text...
...
Рейтинг: 0 / 0
ListView - сортировка
    #32732909
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так делал:
1. Одна лишняя колонка (ширина = 0)
Допустим, номер колонки "Дата" - 3, а невидимая - номер 5
2. При заполнении ListView1 еще строчка:
xItem.SubItems(5) = Format(!Дата, "YYYYMMDD")
3. В обработчике на клик заголовка:
If ListView1.SortOrder = lvwDescending Then ListView1.SortOrder = lvwAscending Else ListView1.SortOrder = lvwDescending
If ColumnHeader.Index = 3 Then
ListView1.SortKey = 4 'Поправка на смещение ColumnHeader.Index относительно SortKey
Else
ListView1.SortKey = ColumnHeader.Index - 1
End if
ListView1.Sorted = True

II. По нескольким столбцам, это уже пользователь:
сначала щелкнуть по колонке 1
потом щелкнуть по колонке 2
Порядок получается 2, 1
...
Рейтинг: 0 / 0
ListView - сортировка
    #32733075
golb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо за ответы. Завтра буду разбираться с этим вопросом.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView - сортировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]