自动调整TListView的列

Bha*_*rat 15 delphi delphi-2006 tlistview

我想自动调整TListView中的所有列.我正在使用下面的代码,但它没有做任何事情.

ListView1.Columns.Add.Caption := 'Field Name';
ListView1.Columns.Items[0].Autosize := True;
Run Code Online (Sandbox Code Playgroud)

如何在Delphi中自动调整TListView的列.

我设定了我的ViewStyle to vsReport.

提前致谢

Bha*_*rat 20

我得到了答案.将列宽设置为-1或-2解决了问题.

使用-1设置将列标题设置为列中最大子项文本的大小,

和-2设置将列标题设置为列标题中文本的大小.

ListView1.Columns[0].Width := -1 or -2;
Run Code Online (Sandbox Code Playgroud)

  • 当然,最好使用适当的常量:`ColumnHeaderWidth = LVSCW_AUTOSIZE_USEHEADER;`或`ColumnTextWidth = LVSCW_AUTOSIZE;`. (15认同)
  • 只是想补充一点,如果从Object Inspector设置宽度,这不起作用. (3认同)