Узлы Treeview не будут выделяться с помощью PopulateOndemand - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть древовидная структура, и я хочу выделить (изменить цвет текста) узла в древовидной структуре, как только этот узел был выбран. По какой-то причине это не работает для меня. когда я выбираю узел, ничего не происходит, но когда я нажимаю плюс на том же узле, который я только что выбрал ... он выделяется ... и даже тогда, когда я щелкаю по любому из дочерних узлов, ничего не происходит, и корневой узел всегда остается подсвеченным. Может кто-нибудь направить меня в правильном направлении ... Я использую c #.

1 Ответ

0 голосов
/ 01 мая 2010

У меня работает следующее. Обратите внимание, что я отменяю фактическое выделение, поскольку в противном случае выделение выделит мое выделение. Поэтому вам, возможно, придется отслеживать, какой узел выбран вручную.

private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
   Dehighlight(treeView1.Nodes);
   e.Node.ForeColor = Color.Red;
   e.Cancel = true;
}

private void Dehighlight(TreeNodeCollection nodes)
{
   foreach (TreeNode node in nodes)
   {
      node.BackColor = Color.White;
      node.ForeColor = Color.Black;
      Dehighlight(node.Nodes);
   }
}
...