Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Сортировка ListView Добавлено: 06.05.07 19:07  

Автор вопроса:  ZagZag | ICQ: 295002202 
Добрый день. =P
У меня вопрос по сабжу.
Наверняка это уже обсуждалось, но только я никак не могу найте где =(
Есть ListView. В нем 3 столбца. (Хотя их количество может меняться)
Нужно при щелчке по заголовку отсортировать повозрастанию/убыванию строки (естественно не нарушая связей между полями)
Поиск по гуглю, pbforums (архив в CHM) и vbnet.ru выдал мне только что нудно использовать LVM_SORTITEMS
SendMessage lvTest.hWnd, LVM_SORTITEMS, 1, AddressOf ListViewSortProc

Что нужно писать в ListViewSortProc?

Может существует более гуманный способ сортировки?
В принципе записей у меня немного (0-2000), но быстродействие не помешает, т.ч. хотелось бы чтобы метод сортировки был не "пузырьком"

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 06.05.07 21:08
The comparison function has the following form.

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort);
The lParam1 parameter is the 32-bit value associated with the first item being compared, and the lParam2 parameter is the value associated with the second item. These are the values specified in the lParam member of the items' LVITEM structure when they were inserted into the list. The lParamSort parameter is the same value passed to the LVM_SORTITEMS message.

Ответить

Номер ответа: 2
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #2 Добавлено: 06.05.07 21:44
Ага, благо с английским впорядке, вроде.
А есть уже готовый пример?

Бугага! Посмотрите ApiViewer!:
Const LV_ITEMA As Long = LVITEMA
Const LVITEMA As Long = LV_ITEMA
Ну и какое значение у LV_ITEMA, которая равна LVITEMA? =)

Всеравно прийдется писать функцию сравнения?

Ответить

Номер ответа: 3
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #3 Добавлено: 06.05.07 21:46
Нашел вроде. ГуглеКодом (http://www.google.com/codesearch?q=lang%3Abasic+LVM_SORTITEMS&hl=ru)
http://www.vbaccelerator.com/codelib/comctl/lvplay.zip
http://www.quitetheberries.com/mrx/DownLoad/xDirsDemoSrc.zip
http://btmtz.mvps.org/listview/vbdirectorylv.zip

Ответить

Номер ответа: 4
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #4 Добавлено: 07.05.07 01:03
Разобрался. Все гораздо проще:

frmMain.lvTest.SortOrder = True|False
frmMain.lvTest.SortKey = ColumnHeader.Index - 1
frmMain.lvTest.Sorted = True

Тема закрыта

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам