如何获得ListView项的高度?

我有ListView,我需要确定项目高度。

您可以使用GetItemRect()方法:

int itemHeight = yourListView.GetItemRect(itemIndex).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 

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

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