加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用不同颜色为树视图的节点着色

发布时间:2020-12-15 23:30:55 所属栏目:百科 来源:网络整理
导读:我有一些带有节点的树视图.在某些情况下,我想为每个节点着色不同的颜色及其子节点.我编写了一个为节点及其子节点着色的函数. 有谁请让我知道有没有可能我有Color.Green作为变量,我不会写每种颜色的整个功能?我的意思是作为函数中的输入参数. 这是功能: pub
我有一些带有节点的树视图.在某些情况下,我想为每个节点着色不同的颜色及其子节点.我编写了一个为节点及其子节点着色的函数.

有谁请让我知道有没有可能我有Color.Green作为变量,我不会写每种颜色的整个功能?我的意思是作为函数中的输入参数.

这是功能:

public void ColorChild(TreeNode nodes,int indx)
{
    foreach (TreeNode node_tmp in nodes.Nodes[indx].Nodes)
    {
       System.Drawing.Color = Green;
       node_tmp.ForeColor = color;
       foreach (TreeNode node_tmp2 in node_tmp.Nodes)
       {
          node_tmp2.ForeColor = Color.Green;
          foreach (TreeNode node_tmp3 in node_tmp2.Nodes)
          {
             node_tmp3.ForeColor = Color.Green;
             foreach (TreeNode node_tmp4 in node_tmp3.Nodes)
             {
                node_tmp4.ForeColor = Color.Green;
                foreach (TreeNode node_tmp5 in node_tmp4.Nodes)
                {
                   node_tmp5.ForeColor = Color.Green;
                }
             }
          }
      }
   }
}

解决方法

您可以使用递归来遍历所有节点.

就像是:

void ColorNode(TreeNodeCollection nodes,System.Drawing.Color Color)
{

    foreach (TreeNode child in nodes)
    {
        child.ForeColor= Color;
        if(child.Nodes != null && child.Nodes.Count>0)
          ColorNode(child.Nodes,Color);
    }
}

并从你这样的方法调用它:

public void ColorChild(TreeNode nodes,int indx)
{
   ColorNode(nodes.Nodes,Color.Green);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读