我使用 ObjectListView 而不是标准 ListView 是因为我想对列进行自动换行。
我在几个地方读到,为了启用自动换行,我唯一需要做的就是将 column.wordWrap
设置为 true。
我就是这样做的,但它不起作用。
我在这里错过了什么?
编辑: 我现在意识到我需要绘制我的专栏所有者。 我找到了 this page哪一种告诉我该做什么,但我不确定将它放在我的代码中的什么位置。我也不太确定是否需要在委托(delegate)中添加某些属性以允许自动换行(从外观上看它是默认启用的)。问题是,我尝试了在此页面中找到的内容,逐字复制,我的列表看起来完全一样...
最佳答案
如果您的意思是“自动换行”,您希望不同的行具有不同的高度,FAQ 答案是正确的——这根本无法做到。
但是,如果您使每一行都可以显示两行或更多行文本,那么,是的,ObjectListView
可以自动换行。
需要三个条件:
- 在要换行的列上将
WordWrap
设置为 true。你已经做到了。 - 确保
ObjectListView
是所有者绘制的(将OwnerDraw
设置为 true -- 这可以在表单设计器中完成)。基本ListView
不能自动换行,所以我们必须自己绘制单元格。 - 通过将 RowHeight 设置为 32(或其他一些值)确保有空间可以看到换行
这是演示中的数据选项卡。第一列将 WordWrap
设置为 true。
关于c# - ObjectListView 不自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10075111/