3 votes

Définition TreeView ForeColor en utilisant C#

J'ai un treeview que lorsque l'utilisateur interagit avec des nœuds individuels, les couleurs changent. Le code est :

treeview.selectednode.forecolor = couleur.rouge;

Lorsque l'utilisateur appuie sur un bouton, je veux que tout l'ensemble des nœuds change par exemple en noir. Donc je code comme suit :

treeview.forecolor = couleur.noir;

Cela fonctionne bien, sauf pour les nœuds que j'ai précédemment changés en rouge. Y a-t-il un moyen de contourner cela ?

2voto

Genius Points 457

Utilisez cette fonction récursive :

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);
    }
}

0voto

user441660 Points 517

Conservez une référence au nœud précédemment sélectionné, mettez-le en noir chaque fois que vous le changez arborescence en noir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X