Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ListView中的自动宽度_C#_.net_Winforms_Listview_Controls - Fatal编程技术网

C# ListView中的自动宽度

C# ListView中的自动宽度,c#,.net,winforms,listview,controls,C#,.net,Winforms,Listview,Controls,如何根据ListView中每列内容的长度设置其宽度?我讨厌在运行时不断更改每列的大小。是否有包含此信息的MSDN文档?我找不到我应该找的地方 谢谢我明白了: viewer.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 查看ColumnHeader.AutoResize()方法。填充项目后调用它,表单的OnLoad()方法是第一次使用。在填充列表后使用两个调整大小选项: myListView.AutoResizeCol

如何根据ListView中每列内容的长度设置其宽度?我讨厌在运行时不断更改每列的大小。是否有包含此信息的MSDN文档?我找不到我应该找的地方

谢谢

我明白了:

viewer.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);

查看ColumnHeader.AutoResize()方法。填充项目后调用它,表单的OnLoad()方法是第一次使用。

在填充列表后使用两个调整大小选项:

myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);

这将根据列数据的宽度调整列的大小,然后恢复列标题的最小宽度,而不会完全破坏原始的自动调整大小功能。

但如果列为空白,该怎么办?列自动调整大小的一个常见问题是,虽然理想情况下它会根据列标题的最小宽度的内容调整大小,但自动调整大小属性强制空列的宽度为两个像素左右。是的,@Justin,我同意你的看法。我才意识到。我所做的是根据内容调整大小,当我知道列的内容不可能比列标题本身宽时,我就根据标题调整大小。但是,这仍然不是最理想的方法,这是我面临的问题。我想要类似“按标题调整大小,然后仅当内容比标题宽时按内容调整大小”的东西。S/O上的计时器确实给了我S。我还有一分钟要等,那一分钟之后,它说还剩46秒,所以我等了46秒。然后它说还有10秒@哈哈,非常欢迎你@Hans。让我抓狂的不是“等等”,而是计时器骗了我哇,运行两个工程,伟大的伎俩!很好的把戏。但是为什么它会起作用呢?根据MSDN,ColumnHeaderAutoResizeStyle.HeaderSize应该将列缩小到标题宽度,但这不会发生吗?为什么?listview中的Bug是非常有用的文档还是糟糕的文档?