【发布时间】:2016-05-03 16:12:57
【问题描述】:
TreeView 中的每个 TreeNode 都有一个唯一索引。
我在 C#TreeView 控件中找不到方法来获取给定索引位置的节点(GetNodeAt() 只是在绘图点处给出节点)。
当我只知道它的索引时,有没有办法获取 TreeNode?strong>
编辑
myTreeView.SelectedNode.Index = <wanted index>
从此answer 不起作用。该属性是只读的。
编辑2
我需要它来做什么:为了避免在非常大的 TreeView 中进行递归搜索,我想运行
for(int i = startPosition; i < treeView.GetNodeCount(); i++)
检查节点,获取索引,然后使用索引选择找到的节点。
【问题讨论】:
-
您的陈述似乎不属实。每个
TreeNode都有一个Index属性,该属性对其所属的Nodes集合是唯一的。但是TreeViews 不是扁平的,所以TreeNode不一定属于最顶层的Nodes集合,因此它的Index并不是整个TreeView独有的。 -
我不明白为什么这个问题被两次否决并获得了接近的票数。我在索引处获取 TreeNode 时遇到了问题。所以我搜索了
c# treeview get node at index,c# treeview get child at index和其他更多。我发现的只是 GetNodeAt() 不符合我的需要。最后我在这里问。好的 - Stackoverlfow 的大多数 C# 程序员都比我好,而且我不完全理解 C# 概念。但是这里问的要求不应该是知识水平,而是问之前的调查努力,然后是一个很好的问题。我错了吗? -
@boboes,是的,如果我正确理解文档的话。
-
@MethodMan
SelectedNode.Level= "TreeView 控件中树节点的从零开始的深度。"。它是只读的(来自 MSDN)。它如何回答我的问题how can I get the TreeNode at an index? -
错字应该是
TreeView.SelectedNode.Index