如何获取ListView项目的高度?

问题描述:

我有ListView,我需要确定项目的高度。如何获取ListView项目的高度?

可以使用GetItemRect()方法:

int itemHeight = yourListView.GetItemRect(itemIndex).Height; 

我不是100%肯定,但是这可能帮助:

int itemHeight = listView.Items[itemIndex].GetBounds(ItemBoundsPortion.Entire).Height; 

我有同样的问题,但是有一个问题 - 直到列表视图绘制的值没有设置。您可能希望能够在添加任何项目之前设置尺寸(例如,如果我想烘干可显示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 
+0

这可以让您非常容易地获得列标题高度和项目高度 - 很好! –