2012-01-07 34 views
0

我有一個樹視圖控件,它有一些節點。我希望自動省略號屬性樹視圖節點像標籤控件一樣。我做了Google,但沒有獲得相關信息或方法來完成此任務。 我使用c#作爲編程語言,.net framework 3.5作爲平臺。我正在Windows窗體中創建不在WPF中的程序。 謝謝。自動省略號屬性vc#中的treeview節點

回答

2

你說得對,該屬性不存在。如果任何節點的標籤長於控件的可視區域,TreeView控件將顯示一個水平滾動條。

您必須用省略號替換它的唯一選項是自己繪製控件。但是由於您只想更改節點的文本,因此可以將DrawMode property設置爲OwnerDrawText(而不是OwnerDrawAll),這可以顯着減輕所有者繪圖的負擔。

你可以找到所有者繪製一個TreeView控制here on MSDN的示例代碼。

請記住,控件的ClientRectangle property(包括TreeView控件)會告訴您控件客戶區的實際寬度。用它來確定節點標籤是否過長,以及是否需要用橢圓繪製。

various overloads of the TextRenderer.DrawText method將允許您以類似於本機控件自身繪製方式(即使用GDI而非GDI +)的方式繪製節點標籤。通過TextFormatFlags的適當組合將指示該方法自動修剪文本並用省略號替換它。

+0

這不適合我 – Awadhendra 2012-01-07 15:53:39

+0

@Awadhendra:它的效果很好。什麼部分不適合你?你寫了什麼代碼? – 2012-01-07 16:01:46

+0

我已經在設計時設置了treeview的DrawMode屬性。 – Awadhendra 2012-01-07 16:09:14