如何获取ListView项目的高度?
答
我不是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
这可以让您非常容易地获得列标题高度和项目高度 - 很好! –