2012-07-27 99 views

回答

2

你想要做这样的事情

TreeNode nodeSectionB = this.TreeView.Nodes["Section B"]; // Or .Nodes[1]; 
TreeNode node = nodeSectionB.Nodes["Group B2"]; // Or .Nodes[1]; 
this.TreeView.SelectedNode = node; 

注意,在使用字符串时参考节点,假设您提供一个参考这样做。否则,你将不得不使用节点索引。上面假设树是静态的,并且后面的节点的位置不变。

如果树是动态的,那就是所需节点的位置确实发生了变化,您可能必须通过树循环才能找到所需的节点。要做到这一点使用类似

private void SelectTreeNode(TreeView treeView, string nodeText) 
{ 
    TreeNodeCollection nodes = treeView.Nodes; 
    foreach (TreeNode n in nodes) 
     CheckRecursive(n, nodeText); 
} 

private void CheckRecursive(TreeNode treeNode, string nodeText) 
{ 
    foreach (TreeNode tn in treeNode.Nodes) 
     if (String.Compare(tn.Text, nodeText, true) == 0) 
      this.TreeView.SelectedNode = tn; 
} 

其中假设的this.TreeView是你的树视图的访问。 nodeText这里是需要查找的节点文本 - 对于具有相同文本值的节点,这可能必须予以修正。

我希望这会有所帮助。