2016-10-27 48 views

回答

1

按照您的圖像,我會假設你正在使用Windows窗體。所以,這是你需要實現有這個樣本中的樹狀視圖稱爲爲TreeView1形式所需的功能代碼:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private readonly Color selectedColor = Color.Red; 
    private readonly Color normalColor = Color.Transparent; 

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
    { 
     if (e.Action != TreeViewAction.ByKeyboard && 
      e.Action != TreeViewAction.ByMouse) 
      return; 

     ResetAllNodes(treeView1.Nodes.Cast<TreeNode>()); 
     ChangeBackground(e.Node); 
    } 

    private void ResetAllNodes(IEnumerable<TreeNode> nodes) 
    { 
     var treeNodes = nodes as TreeNode[] ?? nodes.ToArray(); 
     if (!treeNodes.Any()) 
      return; 

     foreach (var node in treeNodes) 
     { 
      node.BackColor = normalColor; 
      ResetAllNodes(node.Nodes.Cast<TreeNode>()); 
     } 
    } 

    private void ChangeBackground(TreeNode node) 
    { 
     node.BackColor = selectedColor; 
     if (node.Parent == null) 
      return; 

     ChangeBackground(node.Parent); 
    } 
} 

希望這有助於!