2012-01-03 96 views
2

我需要在TreeView中的一個節點內的文本在單詞或字符內進行着色。那可能嗎?什麼路要走?我聽說過自定義繪圖,但沒有經驗!從DrawNode事件TreeView與多色TreeNode文本

treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText; 

然後:

回答

6

設置TreeView控件的屬性

private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) { 
    Color nodeColor = Color.Red; 
    if ((e.State & TreeNodeStates.Selected) != 0) 
    nodeColor = SystemColors.HighlightText; 

    TextRenderer.DrawText(e.Graphics, 
         e.Node.Text, 
         e.Node.NodeFont, 
         e.Bounds, 
         nodeColor, 
         Color.Empty, 
         TextFormatFlags.VerticalCenter); 
} 

更多來自MSDN:TreeView.DrawNode Event

+0

我怎麼可能改變此一半的節點。文字是紅色的,另一半是默認顏色(黑色) – phadaphunk 2012-12-11 15:39:46

+0

@PhaDaPhunk哪一半?你的意思是兩個字嗎?一個紅色,一個黑色? – LarsTech 2012-12-11 15:40:50

+0

是的,它會是兩個字。他們之間可能會有分裂字符,如' - '如果有必要 – phadaphunk 2012-12-11 15:46:39