Установить treeview.SelectedNode по индексу (Список <Int>) - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу установить узел TreeView.selected, перечисляя int List, но не могу понять, как установить childNodes.У меня есть следующий код в моем пользовательском элементе управления:

 private void SetSelectedNode()
    {
        if (MySelectedNodeIndexes == null) return;

        for (int i = 0; i < MySelectedNodeIndexes.Count; i++)
        {
            this.SelectedNode = this.Nodes[MySelectedNodeIndexes[i]];

        }            
    }

Это только устанавливает узел, но при первом его изменении.Но второе изменение должно установить this.SelectedNode.Nodes [первая запись в MyselctedNodesIndexes] .SelectedNode.и т. д.

Если MySelectedNodeIndexes содержит {2,4,7,1}, я хочу, чтобы выбранные узлы были: this.Nodes [2] .nodes [4] .nodes [7] .nodes [1];

Не знаю, как это сделать?Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете использовать цикл for, чтобы найти базу узлов в списке входных индексов.Например:

TreeNode GetNodeByIndexPath(TreeView treeView, int[] indexPath)
{
    var nodes = treeView.Nodes;
    TreeNode node = null;
    for (int i = 0; i < indexPath.Length; i++)
    {
        node = nodes[indexPath[i]];
        nodes = node.Nodes;
    }
    return node;
}

Пример

var path = new int[] { 1, 1, 1 };
treeView1.SelectedNode = GetNodeByIndexPath(treeView1, path);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...