2012-09-04 24 views
1

我需要將星形插入字符串中,該字符串將被指定爲TreeNode的文本。這可能嗎?在WinForms'TreeNode'的文本中插入一個填充的星形

每個TreeNode有不同的級別,可以註釋這些明星。有些節點有一顆星,有一些有兩顆星,有些沒有星。星號將始終出現在文本字符串的末尾。例如:

SU450** 
+1

你能重申你的問題的例子嗎?什麼是明星的文字表示?你什麼意思?告訴更多你正在嘗試做什麼。 – BlueM

+0

我相信OP是星狀字符之後。 – Alex

+0

你的意思是一個像★的unicode字符? Windows有一個查找字符並複製它們的工具。 – BlueM

回答

6

您必須使用包含您要顯示的字符的Font

大多數情況下,Arial Unicode MS將工作。

下面是使用'BLACK STAR' (U+2605)

void Main() 
{ 
    var w = new Form(); 
    var t = new TreeView(); 
    w.Controls.Add(t); 
    t.Dock=DockStyle.Fill; 
    var star = "\u2605"; 
    t.Nodes.Add("good: " + star); 
    t.Nodes.Add("great: "+ star + star + star); 
    t.Font=new System.Drawing.Font("Arial Unicode MS", 13f); 
    w.Show(); 
} 

enter image description here

+0

\ u2605應該爲他做。 – BlueM

+0

將unicode角色獲得所有機器的支持嗎? – Sunil

+1

@Sunil是的,.net中的所有字符串都是unicode。您只需確保使用可顯示字符的字體。使用字體'Arial Unicode MS'是很好的,因爲它包含幾乎所有的unicode字符,並且它是廣泛可用的(它是Word的一部分,或者只是隨軟件一起發佈)。 – sloth

4

您不能在字符串中插入形狀,但有大量unicode字符可供選擇。

Black star U + 2605,看起來很不錯。

如果您的字體具有正確的字符表示,那麼您將會很幸運。


的是一個列表here on wikipedia

有一個從U + 2721到U + 2743可以爲客人提供星級許多變化的範圍。


★, ✡, ✢, ✣, ✣, ✤, ✥, ✦, ✧, ✨, ✩, ✪, ✫, ✬, ✭, ✮, ✯, ✰, ✱, ✲ 

希望這些例子是正確的,我的字體doesen't對他們的表示。

+0

在維基百科上,還請參閱[雜項符號](https://en.wikipedia.org/wiki/Miscellaneous_Symbols)。 **黑星**(U + 2605)是這個Unicode塊的一部分。 – DavidRR

3

這個角色是不是很好? (Unicode字符066D)

٭

或者,您可以創建自己的樹節點類(從System.Windows.Forms.TreeNode繼承)和重寫OnPaint方法。然後你可以繪製任何你需要的東西。

,將icon of the TreeNode設置爲您繪製自己或從famfamfam之類的地方得到的星形圖標。

+0

嗨理查德..試圖重寫塗料的方法,但它沒有射擊。你有什麼想法。 – Sunil

+0

你想畫一個星形圖標? – BlueM

+0

@Sunil - 你是否通過我鏈接到的「OnPaint」MSDN頁面上的示例?值得花些時間瞭解機制如何運作。 –