Проблемы с ListView - VB

Узнай цену своей работы

Формулировка задачи:

Есть Listview(Report), созданный в VB6 (Common Controls 5)
Много записей.
Одна выделена.
Прокручиваем его так, чтоб выделенная запись была вне зоны видимости.
Выполняем любую из команд:

Проблема в том, что когда любая из них выполняется (не для выделенного, а для любого итема), то ListView делает для выделенной записи (для той кот. Selected) прокрутку в видимую область (EnsureVisible)
Т.е. когда много записей, они постоянно добавляются и изменяются, невозможно даже сделать прокрутку (все время скручивает на выделенную запись).
Я пытался лечить через API
ListViewSetSubItemText (LVM_SETITEM) для subitem частично решает проблему
А вот
LVM_SETITEM (для самого итема, т.е iSubItem=0)
LVM_SETITEMTEXTA (для самого итема, т.е iSubItem=0)
либо
LVM_INSERTITEM
всегда дает краш (для ListView созданного в конструкторе).
Че делать?
Net конечно я чуть подучил, но это VB6 проект.
Знаю, что полностью излечится, если полностью рисовать ListView через API. Но это блин пол-проекта покурочить и работа на несколько дней. Плюс всякие сортировки через API делать - повесишься.
Есть какой-нибудь способ полечить проблему на базе VB(Control-5) Listview.
Я небольшой тест-проект приложил (чтоб можно было поиграться с проблемой).

Решение задачи: «Проблемы с ListView»

textual
Листинг программы
CopyMemory md, d, 8

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5