Я хочу знать индекс выбранного узла, подсчитываемый сверху, включая родительские узлы - PullRequest
0 голосов
/ 11 марта 2019

Я использовал TAG и TEXT, есть ли другой способ отслеживать выбранный узел или другие свойства для присвоения значения узлу?

TreeView-Selected Node

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете создать метод, чтобы сгладить древовидную структуру, а затем найти индекс узла в списке.

Например, создать следующий метод Расширения:

using System.Collections.Generic;
using System.Windows.Forms;
public static class TreeNodeCollectionExtensions
{
    public static IEnumerable<TreeNode> AsEnumerable(this TreeNodeCollection nodes)
    {
        foreach (TreeNode c1 in nodes)
        {
            yield return c1;
            foreach (TreeNode c2 in AsEnumerable(c1.Nodes))
                yield return c2;
        }
    }
}

И использовать еготаким образом:

//using System.Linq;
var index = treeView1.Nodes.AsEnumerable().ToList().IndexOf(treeView1.SelectedNode);

Примечание

Индекс узла не является надежной информацией для поиска узла, и я только что поделился ответом для целей обучения.Если вы хотите сопоставить узел записи базы данных, вам просто нужно сохранить ключевое поле записи базы данных в свойстве Name или Tag и использовать его, чтобы определить, к какой записи относится узел.

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