溫馨提示×

C# treenode節(jié)點顏色可以改嗎

c#
小樊
108
2024-07-16 16:01:44
欄目: 編程語言

在C#中,TreeNode節(jié)點的顏色通常是根據(jù)其狀態(tài)自動設置的,例如在TreeView中,選中的節(jié)點通常會顯示為藍色,而未選中的節(jié)點則顯示為黑色。如果需要手動更改節(jié)點的顏色,可以通過自定義繪制節(jié)點的方式來實現(xiàn)。

首先,需要設置TreeView的DrawMode屬性為OwnerDrawText,然后通過HandleCreated事件和DrawNode事件來實現(xiàn)節(jié)點顏色的自定義繪制。在DrawNode事件中,可以根據(jù)需要自定義節(jié)點的繪制方式,包括節(jié)點的文本、背景色、前景色等。以下是一個簡單的示例代碼:

private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
    // 根據(jù)節(jié)點的狀態(tài)設置節(jié)點的前景色和背景色
    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);
    }
}

在上面的示例中,我們根據(jù)節(jié)點是否被選中來設置節(jié)點的背景色和前景色,選中時顯示為高亮色,未選中時顯示為普通色。你可以根據(jù)自己的需求來修改節(jié)點的顏色和樣式。

0