Listview列HeaderSize或ColumnContent的AutoResize

时间:2014-06-11 13:32:40

标签: vb.net listview autoresize

我有一个列表视图,我想通过列内容自动调整大小;但是,有时列的内容小于标题字段,因此它会被截断。

有没有什么方法可以让它按列内容调整大小,但总是至少足够宽以显示完整的标题。

对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我最后写了一个能做我想完成的事情的子。基本上,您只需传入所需的ListView名称,它将调整所有列的大小以适应列内容,或者如果内容比标题短,则适合标题大小。

Friend Sub autoResizeColumnWidths(ByVal lvControlName As ListView)

    Dim minWidthArray(lvControlName.Columns.Count) As Integer

    For i = 0 To lvControlName.Columns.Count - 1

        'Resize to fit the header
        lvControlName.AutoResizeColumn(i, ColumnHeaderAutoResizeStyle.HeaderSize)

        'Store the minimum width required to display the header
        minWidthArray(i) = lvControlName.Columns(i).Width

        'Resize to fit contents
        lvControlName.AutoResizeColumn(i, ColumnHeaderAutoResizeStyle.ColumnContent)


        'Check to see if the minumum width is met
        If lvControlName.Columns(i).Width < minWidthArray(i) Then
            lvControlName.AutoResizeColumn(i, ColumnHeaderAutoResizeStyle.HeaderSize)
        End If

    Next

End Sub

答案 1 :(得分:0)

您可以将列宽= -2设置为调整大小以显示完整标题。