C# 具有多色TreeNode文本的TreeView

C# 具有多色TreeNode文本的TreeView,c#,winforms,treeview,treenode,C#,Winforms,Treeview,Treenode,我需要有一个在树视图节点内的文字颜色的话或字符。可能吗?怎么走?我听说过定制图纸,但没有经验 设置树视图的属性: treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText; 然后从DrawNode事件: private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) { Color nodeColor = Color.Red; if ((e.State &

我需要有一个在树视图节点内的文字颜色的话或字符。可能吗?怎么走?我听说过定制图纸,但没有经验

设置树视图的属性:

treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
然后从DrawNode事件:

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的更多信息:

如何更改此选项,使node.text的一半为红色,另一半为默认颜色(黑色)@PhaDaPhunk哪一半?你是说两个字吗?一个红色,一个黑色?是的,就是两个字。它们之间可能有一个拆分字符,如“-”,如果necessary@PhaDaPhunk这将需要调用TextRenderer两次,其间包含一些度量值。TextRenderer具有静态MeasureText函数。注释代码太多。如果你需要帮助,试着把它作为一个问题发布。好的,我确信这是我丢失的信息,非常感谢!