【发布时间】:2021-04-04 07:18:25
【问题描述】:
我已经通过 WinForms ListView 控件上的一些自动列 (ColumnHeader) 宽度。
Width = -1 根据内容宽度设置自动宽度,根据标题和内容设置 -2。
但是我找不到任何方法来获得自动计算的宽度,然后由-1/-2 设置。
ColumnHeader 项目的宽度属性返回 -1。
有没有办法通过将属性设置为 -1/-2 来获得以像素为单位的实际宽度?
谢谢!
【问题讨论】:
-
在分配
-1或-2值后立即读取ColumnHeader.Width属性。它将返回实际宽度。 -
使用
ColumnHeader.AutoResize()方法设置大小模式,意思就清楚多了。 ColumnHeader 的Width属性始终返回在本机控件中设置的值(通过SendMessage -> LVM_GETCOLUMNWIDTH):它始终返回以像素为单位的大小。 -
@dr.null 它不会返回实际宽度。将 20 添加到宽度将导致宽度 19。请参见此处:i.ibb.co/w0jZwF6/stackoverflow.png
-
是的。
20 - 1 = 19。仔细检查您在做什么并仔细阅读第二条评论。
标签: c# winforms listview width