delphidelphi-2006tlistview

Autosize columns for TListView


I want to auto-size all the columns in the TListView. I am using below code, but its not doing any thing.

ListView1.Columns.Add.Caption := 'Field Name';
ListView1.Columns.Items[0].Autosize := True;

How can i auto-size the columns of TListView in Delphi.

I set my ViewStyle to vsReport.

Thanks in advance


Solution

  • I got the answer. Setting the column width to LVSCW_AUTOSIZE or LVSCW_AUTOSIZE_USEHEADER solved the problem.

    Use LVSCW_AUTOSIZE setting to set the column header to the size of the largest subitem text in the column,

    and a LVSCW_AUTOSIZE_USEHEADER setting to set the column header to the size of the text in the column header.

    uses CommCtrl;
    
    ListView1.Columns[0].Width := LVSCW_AUTOSIZE or LVSCW_AUTOSIZE_USEHEADER;