【发布时间】:2014-07-28 20:32:44
【问题描述】:
ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
Listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
我遇到了一个问题,因为这两行分别产生相同的结果,即同时调整 ColumnContent 和 HeaderSize 的大小。
我已经搜索并没有找到答案,我只需要通过 HeaderSize 调整大小,但上面的示例似乎无法正常工作......还是我遗漏了什么?
而且我已经测试了不止一个列表视图控件...
编辑:我是这样使用它的:
Private Sub UserListResize()
If Me.UserList.InvokeRequired Then
Me.UserList.Invoke(Sub() UserListResize())
Else
UserList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
End If
End Sub
当我在列表视图中添加完项目后,我会调用它。
【问题讨论】:
-
你能在代码中展示你是如何使用它的吗?
-
是的,我编辑了问题。
-
他们不做同样的事情,但除非标题文本真的很长或很短,否则很难区分它们。如果“列”文本较长和/或会被剪裁,它不会缩小列宽以匹配标题文本。您始终可以将列宽设置为您想要的,然后将标题样式更改为 NonClickable。另外,在你添加项目之前它不会做任何事情,然后一旦你添加更多,它可能会再次关闭,所以你必须再次调用该方法。
-
因为子项/单元格内容几乎总是比标题长。 header 方法仅适用于修复长标题文本的列大小(“Days Missed”,内容为“2”、“12”、“23”)。它不会故意剪辑内容(它会剪辑标题,不会剪辑单元格内容)。您也可以尝试 -2 技巧(在循环中将每个列宽设置为 -2),看看是否能得到您想要的东西。
-
来自MSDN:
To autosize to the width of the column heading, set the Width property to -2.