ObjectListView不自动换行

4

我使用ObjectListView而不是标准的ListView,因为我想要对列进行自动换行。

我在多个地方读到,唯一需要做的就是将column.wordWrap设置为true即可启用自动换行。

我也确实这样做了,但是没有效果。

我错过了什么吗?

编辑: 我现在意识到我需要使我的列所有者绘制。 我发现这个页面告诉我该怎么做,但我不确定在代码中应该放置在哪里。我也不太确定是否需要在委托内添加某些属性以允许自动换行(看起来默认情况下已启用)。问题是,我尝试了在此页面中找到的内容,逐字复制,但我的列表看起来完全相同...


你所说的“不起作用”具体指什么?编辑你的问题,包括代码和当前的屏幕截图,以及你期望它应该是什么样子。 - p.campbell
2个回答

8
如果您所说的“自动换行”是指希望不同的行具有不同的高度,则常见问题解答是正确的 - 这是不可能的。
但是,如果您使每一行都能够显示两行或更多行文本,那么ObjectListView可以自动换行。
它需要三个条件:
1. 在要换行的列上将WordWrap设置为true。您已经完成了这一步。 2. 确保ObjectListView是所有者绘制的(将OwnerDraw设置为true - 这可以在表单设计器中完成)。基本的ListView无法自动换行,因此我们必须自己绘制单元格。 3. 通过将RowHeight设置为32(或其他值)来确保有足够的空间来查看换行的行。
这是演示中的数据选项卡。第一列的WordWrap设置为true。 Word wrap in action

这正是我想做的事情,我已经将RowHeight设置为32,但仍然没有起作用,所以我猜我缺少的是第二个条件。我该如何确保它确实是owner drawn? - Superman2625

0

1
你必须阅读整个段落。NO指的是“ObjectListView是否可以拥有不同高度的行?”这不是问题,文本可以换行。问题在于,为了正确显示所有行,必须增加所有行的行高。 - Rev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接