Как я могу получить высоту элемента ListView? - PullRequest
4 голосов
/ 15 июля 2011

У меня есть ListView, и мне нужно определить высоту элемента.

Ответы [ 3 ]

11 голосов
/ 15 июля 2011

Вы можете использовать метод GetItemRect () :

int itemHeight = yourListView.GetItemRect(itemIndex).Height;
1 голос
/ 26 апреля 2015

У меня был тот же вопрос, но есть одна проблема - до тех пор, пока не будет отображен список, значения не установлены.И вы можете захотеть установить размеры, прежде чем добавлять какие-либо элементы (если, например, я хочу высушить просмотр списка, который может отображать 5 записей, но будет начинаться с пустого).

Поэтому мой обходной путь должен был выполнятьсяследующий код, который принудительно отображает элемент управления, но не отображает его, в разделе инициализации приложения и сохраняет значения как глобальные переменные для дальнейшего использования.И, чтобы обойти списки с различными размерами шрифта, чтобы сохранить только разницу между высотой и высотой шрифта:

Dim lvwTemp As New ListView
lvwTemp.View = View.Details
lvwTemp.Columns.Add("test")
lvwTemp.Items.Add("test")
Dim zTempBitmap As New Bitmap(100, 100)
lvwTemp.DrawToBitmap(zTempBitmap, New Rectangle(0, 0, 100, 100))
zTempBitmap.Dispose()
gintListviewHeaderHeightMinusFontSize = lvwTemp.Items(0).GetBounds(ItemBoundsPortion.Entire).Top - lvwTemp.Font.Height
gintListviewItemHeightMinusFontSize = lvwTemp.Items(0).GetBounds(ItemBoundsPortion.Entire).Height - lvwTemp.Font.Height
1 голос
/ 15 июля 2011

Я не уверен на 100%, но это может помочь:

int itemHeight = listView.Items[itemIndex].GetBounds(ItemBoundsPortion.Entire).Height;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...