在windows应用程序中以编程方式在treeview中select一个节点

我已经加载了一个树形视图。 我想遍历treeview节点并展开&select一个节点。 展开工作正常。 但select一个节点不工作。

private void Traverse(TreeNodeCollection nodes, string findtext) { foreach (TreeNode node in nodes) { if (node.Text.ToString().Trim() == findtext) { node.Expand(); node.TreeView.SelectedNode = node.NextNode; //tvwStructureTree.SelectedNode = this.tvwStructureTree.Nodes[node.Index]; //Select a node in Treeview tvwStructureTree But not working tvwStructureTree.SelectedNode = node; node.TreeView.Focus(); } Traverse(node.Nodes, findtext); } } 

它在Windows应用程序。

不太确定你的问题是什么。 TreeView.SelectedNode属性是正确的属性。

设置此属性时,将指定的节点滚动到视图中,并且展开所有父节点,以便指定的节点可见。

当选择节点的父节点或任何祖先节点以编程方式折叠或通过用户操作折叠时,折叠节点成为选定节点。

确保node.TreeView是正确的TreeView实例。

 node.TreeView.SelectedNode = node.NextNode; 

TreeView.HideSelection属性是另一个可能对你有用的属性。

当此属性设置为false时,TreeView控件中选定的节点保持突出显示不同于当前的选择颜色当TreeView控件失去焦点。 当用户单击窗体上的其他控件或移动到其他窗口时,可以使用此属性来保持用户选择的项目可见。

我测试了你自己的代码,工作正常,都找到并选择节点! 没有任何特定的属性设置为我的树视图! 顺便说一句,我使用.Net 3.5和VS 2008