C# TreeView查获节点并选中节点
在一个项目中用到了TreeView,但是每次刷新TreeView的数据之后,所有的节点都会折叠起来
非常影响用户体验,使用下面的方法可以解决这个问题
string LastSelectNode = ""; //先保存当前选中的节点的key LastSelectNode = treeView1.SelectedNode.Name; //刷新数据 TreeView_Load_(); //查找节点并重新选中 SearchNodes(LastSelectNode, treeView1.Nodes[0]);
#region TreeView查找并选中节点 private void SearchNodes(string SearchText, TreeNode StartNode) { while (StartNode != null) { if (StartNode.Name.ToLower().Contains(SearchText.ToLower())) { // CurrentNodeMatches.Add(StartNode); treeView_AfterSelect_bit = false; treeView1.SelectedNode = StartNode; treeView1.SelectedNode.Expand(); treeView1.Select(); treeView_AfterSelect_bit = true; } if (StartNode.Nodes.Count != 0) { SearchNodes(SearchText, StartNode.Nodes[0]);//递归搜索 } StartNode = StartNode.NextNode; } } #endregion