C#中遍历TreeView并查找和选定节点

 
首先先看一段MSDN上的示例程序:打印一个树中所有节点名称
privatevoid PrintRecursive(TreeNode treeNode)
{
    // Print the node.
     System.Diagnostics.Debug.WriteLine(treeNode.Text);
     MessageBox.Show(treeNode.Text);
     // Print each node recursively.
     foreach (TreeNode tn in treeNode.Nodes)
     {
         PrintRecursive(tn);
      }
}

// Call the procedure using the TreeView.
 privatevoid CallRecursive(TreeView treeView)
 {
    // Print each node recursively.
     TreeNodeCollection nodes= treeView.Nodes;
     foreach (TreeNode nin nodes)
     {
          PrintRecursive(n);
     }
}


然后要说明的是一下TreeView类和TreeNode类之间的关系:TreeView类中有个只读属性是Nodes,它是属于TreeNodeCollection类型的,而对于一个TreeView它的Nodes属性就是返回treeView根结点的集合。

然后就是我的递归遍历查找一个树节点的方法(由于程序需要我是根据树节点的ImageIndex属性查找的):

private TreeNode FindTreeNode(int imageIndex, TreeNode tnParent)
{
    
if (tnParent== null)
        
returnnull;
    
if (tnParent.ImageIndex== imageIndex)
        
return tnParent;
     TreeNode tnRet
=null;
    
foreach (TreeNode tnin tnParent.Nodes)
     {
         tnRet
= FindTreeNode(imageIndex, tn);
        
if (tnRet!= null)
            
break;
     }
    
return tnRet;
}

private TreeNode CallFindNode(int imageIndex, TreeView treeView)
{
     TreeNodeCollection nodes
= treeView.Nodes;
    
foreach (TreeNode nin nodes)
     {
         TreeNode temp
= FindTreeNode(imageIndex, n);
        
if (temp!= null)
            
return temp;
     }
    
return null;
}

/// <summary>
/// 这个是一个点击事件,其中改变了选中节点,
/// 改变选中节点的同时就触发了selectedNodeChanged事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void myControlTransactions_AddCustomer(object sender, EventArgs e)
{
     TreeNode temp
= CallFindNode(3, treeView1);
    
if (temp != null)
         treeView1.SelectedNode
= temp;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值