默认选中Treeview的某个节点--修正方法

感谢High_Mount指出我的上一篇文章 默认选中TreeView某个节点的方法中所写的选中Treeview某个节点的方法有错误,只能适用于少于三层的情况,下面我修改这个方法,使它能适用于任意多层。代码如下:

ExpandedBlockStart.gif ContractedBlock.gif      /**/ /// <summary>
InBlock.gif    
/// 选中treeview的某个节点,需要每个node的value不同
InBlock.gif    
/// </summary>
ExpandedBlockEnd.gif    
/// <param name="sNodeValue"></param>

None.gif      private   void  selectNode(TreeView tv, string  sNodeValue)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
foreach (TreeNode tRoot in tv.Nodes)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if (tRoot.Value == sNodeValue)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                tRoot.Select();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
if (tRoot.ChildNodes != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
//foreach (TreeNode tChild in tRoot.ChildNodes)
InBlock.gif                    
//{
InBlock.gif                    
//    if (tChild.Value == sNodeValue)
InBlock.gif                    
//        tChild.Select();
InBlock.gif                    
//}
InBlock.gif
                    TreeNode tTmp = null;
InBlock.gif                    tTmp 
= FindNode(tRoot, sNodeValue);
InBlock.gif                    
if (tTmp != null)
InBlock.gif                        tTmp.Select();
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif    }

None.gif
ExpandedBlockStart.gifContractedBlock.gif    
/**/ /// <summary>
InBlock.gif    
/// 递归查找父节点
InBlock.gif    
/// </summary>
InBlock.gif    
/// <param name="tnParent">指定一个根节点,然后遍历它</param>
ExpandedBlockEnd.gif    
/// <param name="strValue">所要查找的节点的value</param>

None.gif      private  TreeNode FindNode(TreeNode tnParent,  string  strValue)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
if (tnParent == nullreturn null;
InBlock.gif        
if (tnParent.Value == strValue) return tnParent;
InBlock.gif        TreeNode tnRet 
= null;
InBlock.gif        
foreach (TreeNode tn in tnParent.ChildNodes)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            tnRet 
= FindNode(tn, strValue);
InBlock.gif            
if (tnRet != nullbreak;
ExpandedSubBlockEnd.gif        }

InBlock.gif        
return tnRet;
ExpandedBlockEnd.gif    }

转载于:https://www.cnblogs.com/vagerent/archive/2007/08/07/845691.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值