Найти узел TreeView по значению - PullRequest
       3

Найти узел TreeView по значению

5 голосов
/ 15 сентября 2011

Все мои узлы TreeView имеют уникальный идентификатор для своей глубины узла.

Я хочу установить Checked=True на узле TreeView, который соответствует определенному значению.

В настоящее время я делаю следующее:

Dim value As Integer = 57

For Each n As TreeNode In tvForces.Nodes
   If n.Value = value Then n.Checked = True
Next

Есть ли лучший способ найти узел, который я хочу установить как Checked=True, а не проходить через каждый узел?

Я ищу что-то вроде:

Dim value As Integer = 57

n.FindNodesByValue(value)(0).Checked = True

Есть что-нибудь подобное, что я могу использовать?

Ответы [ 3 ]

5 голосов
/ 15 сентября 2011

Псевдокод (c#) для демонстрации идеи с использованием LINQ Где () + List.ForEach ():

nodes.Where(node => node.Value == "5")
     .ToList()
     .ForEach((node => node.Checked = true));

См. MSDN по ссылкам выше для синтаксиса VB.NET обоих методов.

0 голосов
/ 11 марта 2014
                foreach (TreeNode node in TreeView1.Nodes)
                {
                    if (node.Value == "8")
                    {
                        node.Checked = true;
                    }
                    foreach (TreeNode item1 in node.ChildNodes)
                    {
                        if (item1.Value == "8")
                        {
                            item1.Checked = true;
                        }
                    }
                }               
0 голосов
/ 22 ноября 2012
for (int j = 0; j < TreeView1.CheckedNodes.Count; j++)
    {    
        Response.Write(TreeView1.CheckedNodes[j].Value));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...