Delphi XE4 Collapsed ListView Group

时间:2014-01-01 18:08:04

标签: delphi listview delphi-xe4

我有一个TListView有2列 - 每个都是自动调整的。只要我向组中添加项目,该组就会崩溃(lgsCollapsed)。不幸的是,由于ListView中的错误对齐,这看起来有点“丑陋”:

ListView

它会自动“隐藏”小的[+/-]切换,我不知道为什么。 我甚至不确定这是故意还是只是一个错误...... 当我在运行时更改Listview的大小(宽度)时,它会重新对齐并且切换回来就好了(或者当我移动滑块时)。如何在添加新项目后立即重新对齐/重新启动小切换?

1 个答案:

答案 0 :(得分:1)

您正在对列进行自动调整,因此组中可能有一个项目会使列变得比您想要的更大。您可以在添加组/项后根据需要调整TListColumn.Width的大小,以确保列不超过ListView的客户区。调用GetSystemMetrics(SM_CXVSCROLL)获取垂直滚动条的宽度,然后从TListView.ClientWidth值中减去该宽度,然后循环浏览TListView.Columns(或只访问最后一个TListColumn)进行调整每个列的Width根据需要,以便所有宽度的总和不超过计算的客户区。