Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting TreeView ForeColor using C#

I have a treeview that when the user interacts with individual nodes, the colours change. The code is:

treeview.selectednode.forecolor = color.red;

When the user presses a button, I want the whole set of nodes to change to black for example. So I code as such:

treeview.forecolor = color.black;

It works fine, except for the nodes that I have previously changed to red. Is there a way to get around this?

like image 339
Darren Young Avatar asked Jul 19 '26 00:07

Darren Young


1 Answers

Use this recursive function:

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    (sender as TreeView).SelectedNode.ForeColor = Color.Red;
}

private void button1_Click(object sender, EventArgs e)
{
    foreach (TreeNode tn in treeView1.Nodes)
    {
        tn.ForeColor = Color.Blue;
        ColorNodes(tn);
    }
}

private void ColorNodes(TreeNode t)
{
    foreach (TreeNode tn in t.Nodes)
    {
        tn.ForeColor = Color.Blue;
        ColorNodes(tn);
    }
}
like image 190
Genius Avatar answered Jul 22 '26 13:07

Genius



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!