我想要自动调整TListView中所有列的大小。我使用以下代码,但它没有产生任何效果。
ListView1.Columns.Add.Caption := 'Field Name';
ListView1.Columns.Items[0].Autosize := True;
在Delphi中,如何自动调整TListView的列大小。
我将ViewStyle设置为vsReport
。
提前致谢。
我想要自动调整TListView中所有列的大小。我使用以下代码,但它没有产生任何效果。
ListView1.Columns.Add.Caption := 'Field Name';
ListView1.Columns.Items[0].Autosize := True;
在Delphi中,如何自动调整TListView的列大小。
我将ViewStyle设置为vsReport
。
提前致谢。
LVSCW_AUTOSIZE
或 LVSCW_AUTOSIZE_USEHEADER
可以解决这个问题。
使用LVSCW_AUTOSIZE
设置来将列标题设置为列中最大子项文本的大小,
使用LVSCW_AUTOSIZE_USEHEADER
设置来将列标题设置为列标题文本的大小。uses CommCtrl;
ListView1.Columns[0].Width := LVSCW_AUTOSIZE or LVSCW_AUTOSIZE_USEHEADER;
只需将列宽设置为-1即可
ListView1.Columns[0].Width:=-1;
试试这个:
// Assign vsReport;
ListView1.ViewStyle := vsReport;
{ // Add your items }
// Assign vsList again;
ListView1.ViewStyle := vsList;
ColumnHeaderWidth = LVSCW_AUTOSIZE_USEHEADER;
或者ColumnTextWidth = LVSCW_AUTOSIZE;
。 - Uli GerhardtLVSCW_AUTOSIZE_USEHEADER
。这将自动调整列宽以适应标题或项中最大的内容。对这两个常量进行或运算似乎不起作用。 - dan-gph