我需要在每个列表项之间腾出更多空间。是否可以在Delphi中更改Listview项目高度?
答案 0 :(得分:7)
您的TListView
处于什么模式? (有4种情况,不同模式的情况会发生变化 - 这就是为什么首先存在不同模式的原因。)
既然你在询问身高,我猜你正处于vsList
模式。在这种情况下,每行的高度由SmallImages
Imagelist
的高度决定。您可以通过为ImageList
指定较高的图像来更改行高。
答案 1 :(得分:2)
Delphi TListView
控件是Microsoft控件的包装器。它来自TCustomMultiSelectListControl
。虽然TListView
没有公开ItemHeight
属性,但TCustomMultiSelectListControl也是TListBox
的祖先,它确实公开了这个属性。
TListBox的ItemHeight属性在TCustomListBox(它来自TCustomMultiSelectListControl)中实现。尽管该属性不在共同的祖先中,但是通过MSDN的过程似乎表明标准列表视图和列表框控件共享许多消息,其中包括LB_SETITEMHEIGHT
。不幸的是,这个消息在VCL中找不到。
从粗略地看一下TCustomListBox中SetItemHeight的实现以及在该类中使用(F)ItemHeight,我需要:
总而言之,这不是一个简单的练习。如果您的应用允许,并且您可以切换为TListBox
或TColumnListBox
,那么您的任务将变得更加轻松......
<强>更新强>
看到Ken的回答。当然使用ImageList更改ItemHeight是vsList模式是一种更容易的方法!