Winform TreeView 选择节点颜色自定义

TreeView没有属性可以设置选中节点颜色,因此只有在DrawNode事件中来改变颜色。

首先设置TreeView的属性

treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;

DrawNode事件

private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
    
    
    if ((e.State & TreeNodeStates.Selected) != 0)
    {
    
    
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0, 122, 204)), e.Node.Bounds);
        Font nodeFont = e.Node.NodeFont;
        if (nodeFont == null) nodeFont = ((TreeView)sender).Font;
        e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White, Rectangle.Inflate(e.Bounds, 2, 0));
    }
    else
    {
    
    
        e.DrawDefault = true;
    }
}

Guess you like

Origin blog.csdn.net/q913777031/article/details/121300753