AutoResize Listview Columns to both Header and Content
This post has been revived from the archives by request.
I use Listviews a lot in my programming, and one issue I have had is that the autoresize is for either the header or the content, but not both. So, I finally created a function I add to fit whichever of the two is the widest.
Private Sub BestFit(ByRef lvw As ListView)
Dim lvCol As ColumnHeader
‘ loop through the columns
For Each lvCol In lvw.Columns
‘ set the width to the column width
lvCol.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent)
‘ record the width
Dim width As Integer = lvCol.Width
‘ set the width to the header width
lvCol.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize)
‘ if the original width is greater than the new width, revert to it
If width > lvCol.Width Then
lvCol.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent)
End If
Next
End Sub