2012-01-03 80 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