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

HOWTO: Sort a ListView Control by Date
+
google
...
Рейтинг: 0 / 0
11.10.2004, 15:32
    #32732455
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView - сортировка
Если нет необходимости работать с коллекцией Items, то можно воспользоваться советом из MSDN от Alexey Kudinov. В противном случае можно воспользоваться следующим алгоритмом:
Содержимое Item.Text запоминается в Item.Tag и заменяется на отформатированное под сортировку строковое представление(Например - Format(dateText,"yyyymmdd")) , после чего производится сортировка и восстановление прежних значений Item.Text...
...
Рейтинг: 0 / 0
11.10.2004, 18:19
    #32732909
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView - сортировка
Я так делал:
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
11.10.2004, 21:00
    #32733075
golb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView - сортировка
Огромное спасибо за ответы. Завтра буду разбираться с этим вопросом.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView - сортировка / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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