Вы можете создать метод, чтобы сгладить древовидную структуру, а затем найти индекс узла в списке.
Например, создать следующий метод Расширения:
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
и использовать его, чтобы определить, к какой записи относится узел.