Настройка TreeView ForeColor с помощью C # - PullRequest
3 голосов
/ 11 ноября 2010

У меня есть древовидное представление, что когда пользователь взаимодействует с отдельными узлами, цвета меняются.Код:

treeview.selectednode.forecolor = color.red;

Когда пользователь нажимает кнопку, я хочу, чтобы весь набор узлов, например, стал черным.Поэтому я кодирую так:

treeview.forecolor = color.black;

Работает нормально, за исключением узлов, которые я ранее изменил на красныйЕсть ли способ обойти это?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Используйте эту рекурсивную функцию:

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);
    }
}
0 голосов
/ 11 ноября 2010

Сохраните ссылку на ранее выбранный узел, превращайте его в черный всякий раз, когда вы меняете древовидное представление на черное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...