如何以编程方式自动调整ListView列?

时间:2008-09-11 20:46:13

标签: .net windows user-interface controls

我发现了一些使用Win32 api或模拟^ +按钮组合的示例( ctrl - + using SendKeys,但至少在SendKeys方法listview抓取光标并将其设置为沙漏,直到我按下键盘上的开始按钮。最干净的方法是什么?

4 个答案:

答案 0 :(得分:19)

看起来对myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)的调用会做你想要的。我想,只需在添加项目后调用它。

更多信息here

答案 1 :(得分:1)

根据MSDN,如果您将列宽设置为-1,那么它将自动调整为最宽的项目

答案 2 :(得分:0)

循环遍历所有列,并在添加内容后将宽度设置为-1。

答案 3 :(得分:0)

在您的代码中添加以下例程后,可从任何过程/函数调用它。但是不要在“ Form_Load”过程中使用它。仅在将项目添加到ListView后才调用它(或者,如果要进行多次添加,请在所有添加项的末尾调用一次):

    Private Sub AutoSizeListViewColumns(oListView As ListView)
        Dim nCol As Integer = 0
        SuspendLayout()
        For nCol = 0 To (oListView.Columns.Count - 1)
            oListView.Columns(nCol).Width = -1  'forces autosizing on column
        Next
        oListView.Refresh()
        ResumeLayout()
    End Sub
相关问题