Прокрутка элемента управления ListView до определенного элемента - PullRequest
1 голос
/ 26 декабря 2010

Есть ли способ прокрутки списка (в виде отчета), чтобы определенный элемент находился вверху? Самым близким, что я мог найти, был ListView_EnsureVisible, но это только гарантирует, что элемент виден - он не позволяет точно контролировать, где отображаются элементы.

1 Ответ

4 голосов
/ 26 декабря 2010

ListView_EnsureVisible () прокручивает ListView, чтобы сделать элемент видимым, но обычно (но не всегда) размещает элемент рядом с серединой ListView. Чтобы элемент появился сверху, сначала вызовите ListView_EnsureVisible (), затем вызовите ListView_GetTopIndex () для определения верхнего видимого элемента, затем используйте ListView_GetItemIndexRect () для получения высоты и положения обоих элементов, затем рассчитайте вертикальное смещение между ними и, наконец, вызовите ListView_Scroll (). Я делаю это в одном из моих собственных проектов, и он отлично работает.

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