Automatická šířka sloupců v ListView

Funkce:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
    hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
    lParam As Any) As Long

Const LVM_SETCOLUMNWIDTH = &H1000 + 30
Const LVSCW_AUTOSIZE = 65535
Const LVSCW_AUTOSIZE_USEHEADER = 65534

'Nastaví šířku každého sloupce tak, aby všechny položky byly viditelné. Pokud bude
'druhý argument True, zahrne se do přepočítání i délka textu záhlaví sloupce

Sub ListViewAdjustColumnWidth(LV As ListView, _
   Optional AccountForHeaders As Boolean)

    Dim col As Integer, lParam As Long
    
    If AccountForHeaders Then
        lParam = LVSCW_AUTOSIZE_USEHEADER
    Else
        lParam = LVSCW_AUTOSIZE
    End If
    
    For col = 1 To LV.ColumnHeaders.Count
        SendMessage LV.hwnd, LVM_SETCOLUMNWIDTH, col, lParam
    Next

End Sub

Zpět

Autor: The Bozena