ObjectListView没有自动换行

时间:2012-04-09 14:57:41

标签: c# word-wrap ownerdrawn objectlistview

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

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

我做到了,但它不起作用。

我在这里缺少什么?

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

2 个答案:

答案 0 :(得分:8)

如果您的意思是“自动换行”,您希望不同的行具有不同的高度,那么常见问题答案是正确的 - 它根本无法完成。

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

需要三个条件:

  1. 在要包装的列上将WordWrap设置为 true 。你已经做到了。
  2. 确保ObjectListView是所有者绘制的(将OwnerDraw设置为 true - 这可以在表单设计器中完成)。基础ListView不能自动换行,因此我们必须自己绘制单元格。
  3. 通过将RowHeight设置为32(或其他一些值),确保有空间查看包裹的行
  4. 这是演示中的数据选项卡。第一列的WordWrap设置为true。 Word wrap in action

答案 1 :(得分:0)

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

  

可以自动换行吗?

     

没有