When you’re dynamically adding ColumnHeaders to a ListView control at run time, you may not know how long the text for the header will be, so the user must readjust the width of the column to see it. But by making a label with its Visible property set to False, and its Autosize property set to True, you can fill up the label with the same text that’s going to be in the header. Then use Label1.Width in the Add argument for the ColumnHeader:
Private Sub Command1_Click( ) Dim ColumnText as String, clmx as ColumnHeader ColumnText = _ "A very long header for " & "the ListView control" Label1.Caption = ColumnText set clmx = ListView1.ColumnHeaders.Add_ (, , ColumnText, Label1.Width) ListView1.View = lvwReportEnd Sub