2012-04-09 64 views
2

我使用的是ObjectListView而不是標準的ListView,因爲我想單詞換行。ObjectListView不會自動換行

我在幾個地方看過,爲了使字換行是唯一我需要的是將column.wordWrap設置爲true。

我這樣做,但它不起作用。

我在這裏錯過了什麼?

編輯︰ 我現在意識到,我需要讓我的列所有者繪製。 我發現this page哪種告訴我該怎麼做,但我不確定將它放在我的代碼中。我也不太確定我是否需要在委託內部添加特定屬性以允許換行(通過默認情況下啓用的外觀選項)。問題是,我想我在這個頁面中發現,把它抄了一個字一個字,我的名單長得一模一樣......

+0

你是什麼意思的「不起作用」?編輯您的問題,以包含您目前所擁有的代碼和屏幕截圖,以及您期望的外觀。 – 2012-04-09 15:01:17

回答

5

如果通過「自動換行」的意思是,你需要不同的行具有不同的高度號,常見問題的答案是正確的 - 它根本無法做到的。

但是,如果讓每行都顯示兩行或多行文字,那麼,是的,ObjectListView可以自動換行。

它需要三個條件:

  1. 設置在列WordWrap真正包。你已經做到了。
  2. 確保ObjectListView是業主繪製的(設置爲OwnerDrawtrue - 這可以在窗體設計器中完成)。基地ListView不能自動換行,所以我們必須自己繪製細胞。
  3. 確保有空間通過設置rowHeight至32(或一些其它值)以查看換行

這是從演示數據標籤。第一列有WordWrap設置爲true。 Word wrap in action

+0

這正是我想要做的,而且我已將RowHeight設置爲32,但它仍然無法工作,所以我猜想我缺少的是第二個條件。 我如何確定它確實是業主繪製的? – Superman2625 2012-04-18 06:14:47

+0

olv1.OwnerDraw = true – Grammarian 2012-04-18 21:51:58

0

ObjectListView SourceForge FAQ頁面時,它明確規定:

可不可以自動換行?

+0

你必須閱讀整個段落。 NO指的是「一個ObjectListView可以有不同高度的行嗎?」。它不是問題,文本不能被包裝。問題是,行高必須增加所有行才能正確顯示。 – 2017-12-07 10:13:47