在C#中,TreeNode節點的顏色通常是根據其狀態自動設置的,例如在TreeView中,選中的節點通常會顯示為藍色,而未選中的節點則顯示為黑色。如果需要手動更改節點的顏色,可以通過自定義繪制節點的方式來實現。
首先,需要設置TreeView的DrawMode屬性為OwnerDrawText,然后通過HandleCreated事件和DrawNode事件來實現節點顏色的自定義繪制。在DrawNode事件中,可以根據需要自定義節點的繪制方式,包括節點的文本、背景色、前景色等。以下是一個簡單的示例代碼:
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
// 根據節點的狀態設置節點的前景色和背景色
if ((e.State & TreeNodeStates.Selected) != 0)
{
e.Graphics.FillRectangle(SystemBrushes.Highlight, e.Bounds);
TextRenderer.DrawText(e.Graphics, e.Node.Text, treeView1.Font, e.Bounds, SystemColors.HighlightText, TextFormatFlags.GlyphOverhangPadding);
}
else
{
e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);
TextRenderer.DrawText(e.Graphics, e.Node.Text, treeView1.Font, e.Bounds, SystemColors.WindowText, TextFormatFlags.GlyphOverhangPadding);
}
}
在上面的示例中,我們根據節點是否被選中來設置節點的背景色和前景色,選中時顯示為高亮色,未選中時顯示為普通色。你可以根據自己的需求來修改節點的顏色和樣式。