c# - ObjectListView 不自动换行

标签 c# word-wrap ownerdrawn objectlistview

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

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

我就是这样做的,但它不起作用。

我在这里错过了什么?

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

最佳答案

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

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

需要三个条件:

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

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

关于c# - ObjectListView 不自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10075111/

相关文章:

c# - Newtonsoft JSON - 反序列化JSON时如何使用JsonConverter.ReadJson方法进行类型转换

javascript - 将 SVG 文本更改为 css 自动换行

delphi - 如何在 VCL 风格的页面控件上进行所有者绘制

delphi - 简单的 TListView OwnerDraw 文本字体大小和颜色示例?

delphi - 为什么 AlphaBlend 总是返回 false(在 Canvas 上绘图)?

c# - 必须设置属性 "sonar.cs.fxcop.assembly"并且项目必须已经构建

c# - Nancy 示例应用程序中的 Lambda 错误

c# - ReportViewer 2010 不刷新异步回发

html - 处理浏览器缩放(缩放导致换行)

android - 如何找出 Android 上的 TextView 中文本换行的行数?