我有一个带有一些节点的 treeview
。在某些情况下,我想用不同的颜色为每个节点及其子节点着色。我写了一个函数来为节点及其子节点着色。
有人请告诉我是否有可能将 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);
}
关于c# - 用不同的颜色为树 View 的节点着色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35155193/