【问题标题】:ObjectListView doesn't word-wrapObjectListView 不自动换行
【发布时间】:2012-04-09 14:57:41
【问题描述】:

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

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

我就是这么做的,但是没有用。

我在这里错过了什么?

编辑: 我现在意识到我需要绘制我的专栏所有者。 我找到了this page,它告诉我该怎么做,但我不确定将它放在我的代码中的哪个位置。我也不太确定是否需要在委托中添加某些属性以允许自动换行(从外观上看,它默认启用)。问题是,我尝试了在此页面中找到的内容,逐字复制,我的列表看起来完全一样...

【问题讨论】:

  • “不起作用”到底是什么意思?编辑您的问题以包含您当前拥有的代码和屏幕截图,以及您期望它的外观。

标签: c# word-wrap ownerdrawn objectlistview


【解决方案1】:

如果您的意思是“自动换行”,您希望不同的行具有不同的高度,FAQ 的答案是正确的——根本无法做到。

但是,如果您使每一行都可以显示两行或多行文本,那么,是的,ObjectListView 可以自动换行。

需要三个条件:

  1. 在要换行的列上将WordWrap 设置为true。你已经这样做了。
  2. 确保ObjectListView 是所有者绘制的(将OwnerDraw 设置为true——这可以在表单设计器中完成)。基础ListView 不能自动换行,所以我们必须自己绘制单元格。
  3. 通过将 RowHeight 设置为 32(或其他值)来确保有空间可以查看换行

这是演示中的数据选项卡。第一列将WordWrap 设置为true。

【讨论】:

  • 这正是我想要做的,我已经将 RowHeight 设置为 32 并且它仍然不起作用,所以我想我缺少的是第二个条件。如何确保它确实是所有者绘制的?
【解决方案2】:

ObjectListView SourceForge FAQ 页面上,它明确指出:

它可以自动换行吗?

没有。

【讨论】:

  • 您必须阅读整个段落。 NO 是指“ObjectListView 可以有不同高度的行吗?”。这不是问题,文本不能被换行。问题是,必须增加行高才能使所有行正确显示。
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
相关资源
最近更新 更多