我有一個WinForms TreeView。 TreeView表示更詳細的視圖摘要,我使用的視覺線索之一是將節點的文本設爲粗體或常規。 問題是,如果將節點的字體從常規變爲粗體,它會剪切文本,就好像它試圖將粗體文本放入常規文本的空間中一樣。如果字體從粗體更改爲常規,TreeView文本會被剪裁
稍微瀏覽一下顯示常用的解決方法是將TreeView的字體設置爲粗體字體,並選擇性地將節點設置爲常規。
這樣做效果更好,但是一旦我將節點更改爲常規節點,如果我將其更改爲回爲粗體,則會再次進行裁剪。 由於我動態更新我的視圖,我遇到了這個問題。
令人驚訝的是,我在Stackoverflow上找不到這個問題的任何引用,所以認爲我會盡我所能,現在把它浮在這裏。 有誰知道更徹底(但最好不要太複雜)的解決方法或解決方案?
我使用運行在.Net 2.0上的C#3,但如果需要可以使用.Net 3.5。
[更新]
無人問津吧?這很糟糕。到目前爲止,我自己提出的最好的方法是在字符串的末尾添加一些空格(以給它增長空間)。這在很多層面上聞起來(不僅僅是因爲它影響滾動條)。我不想去第三方控制(或寫自己的),因爲這只是爲我的開發團隊的內部應用程序。考慮改變比喻,但它是一個很好的選擇。
謝謝Edhy。這聽起來很明顯 - 但是當我去檢查我的代碼時 - 我在文本中將文本設置爲粗體,它位於「Suspend/ResumeLayout()」中,而不是「Begin/EndUpdate()」!修復使問題消失。我覺得我太分心了,因爲我搜索的每個地方都發現了同樣的問題,並沒有提供任何解決方案,甚至微軟也承認這是一個錯誤!希望這篇文章能夠幫助其他人避免同樣的錯誤:-) – philsquared 2010-02-15 10:46:46
這不適合我... – 2011-11-01 23:33:09