TreeNode tn = this.tvwShow.SelectedNode;      
this.BindTreeView();//清空了TreeView, 从数据库读取数据并重新添加TreeNode
this.tvwShow.SelectedNode = tn;这样做为什么不行?
该怎么做?(要遍历TreeView来查找原来的那个TreeNode, 然后再选择它么?)

解决方案 »

  1.   

    To: mylove46 
    看来是要遍历查找了~但是我上面的做法为什么不行? 请大家指点
      

  2.   

    TreeNode   tn   =   this.tvwShow.SelectedNode;     
    这个是引用类型,当清空了TreeView后这个引用已经不存在了,所以你再赋值就没效果了
    还得遍历
      

  3.   

    重新绑定后原来的选种的节点不在存在,你要在绑定前记录下原来选种的节点重新遍历,让他的 this.tvwShow.SelectedNode = 你原来选种的节点
      

  4.   

    To: imwjb 
    tn还是存在的, 我用MessageBox.Show(tn.Name);还能显示的出来.
    不过重新绑定TreeView后, TreeView上已经不存在tn这个节点了, 所以后面的那句赋值语句是没效果的
    this.tvwShow.SelectedNode = tn;   //不会起作用(因为TreeView上已经不存在tn这个节点了)是这样子吗?