当我对数据库操作后,想重新加载树时,加载后保持树当前状态,在网上找了很多,但没有找到合适的,也可能是没看懂,后来还是自已研究成功!
原理:
1、把当前树中选中节点记录下来
2、重新加载树后,遍历所有节点,找到记录下来的节点
3、找到后,设为选中,展开节点即可。

//用来存储选中节点
TreeNode ChecedkNode=new TreeNode();

//当前选中节点传给它
CheckedNode=treeView1.SelectedNode;

//递归函数遍历所有节点,找出并选中,展开
 
void test(TreeNode node1) 
      
{
            
foreach (TreeNode node in node1.Nodes)
           
{                
                
if(node.Text==CheckedNode.Text)
              
{
                    
this.treeView1.SelectedNode = node;
                    treeView1.SelectedNode.Expand();
                }
   
                test(node);
            }
          
        }


//调用刚才递归并传参,保证所有节点被遍历
foreach (TreeNode node in this.treeView1.Nodes)
          
{
                test(node);  
            }

posted on 2008-04-01 11:31  haotj  阅读(894)  评论(0)    收藏  举报