Свойство индексирования древовидного узла по имени

#c# #winforms #treeview #treenode

#c# #winforms #просмотр дерева #древовидный узел

Вопрос:

Мой вопрос заключается в следующем. Мне нужно получить значение Index a TreeNode , но я знаю только название этого Node . Есть ли у вас какие-либо идеи, как я могу получить это свойство?

Я бы хотел что-то такое же:

 int treeIndex = treeView1.Nodes["myNode"].Index; 
  

Если это возможно, пожалуйста, покажите мне пример кода.

Ответ №1:

Вы можете сделать так,

 var result = treeView1.Nodes.OfType<TreeNode>()
                            .FirstOrDefault(node => node.Name.Equals("name"));
  

затем получите доступ к индексу внутри результата.

Комментарии:

1. Резервуары для всех. Это решение было лучшим для меня сейчас.

Ответ №2:

Вы можете определить свой собственный класс дерева.

Пример использования индексаторов:

 public class MyTreeView : TreeView 
{
    public int this[string nodeName] {
        var found = this.Nodes.FirstOrDefault(n=>n.Text == nodeName);
        return (found == null)?-1:found.Index;
    }
}
  

и после использования этого, как:

 var tree = new MyTreeView(); 
...
...

var coolNodeIndex = tree["MyCoolNode"].Index;