treeview 加入节点时,如何找到父节点,加入到下面

yumanqing 2007-03-06 11:10:44
treeview 加入节点时,如何找到父节点,加入到下面,在VB6中,直接一个方法就可以了add(,,父节点关键字,);C#中怎么不行呢?(注:WINFORM中)谢谢
...全文
486 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
小蓝 2008-09-24
  • 打赏
  • 举报
回复
q107770540 2008-08-01
  • 打赏
  • 举报
回复
用站点地图 作为treeview的数据源
zhangzh2003 2007-03-21
  • 打赏
  • 举报
回复
up
yumanqing 2007-03-19
  • 打赏
  • 举报
回复
UP
XuFrank 2007-03-16
  • 打赏
  • 举报
回复
//返回标记为szKey的树节点,null表示没找到指定的树节点
//RootNode为根节点
//szKey为某结点的Key,可以用TreeNode.Tag,也可以是TreeNode.Text

//从根节点开始,用入队出队非递归方式寻找指定的父节点
private TreeNode GettNodeByKey(TreeNode rootNode, string szKey) {
Queue myQ=new Queue();
TreeNode tn=null; //返回的节点
TreeNode tmpNode=null; //临时的节点

if (rootNode.Tag.ToString() ==szKey) tn=rootNode;
else if (rootNode.Nodes.Count >0 ) myQ.Enqueue(rootNode); //入队

while(myQ.Count >0){
tmpNode=(TreeNode) myQ.Dequeue (); //出队
foreach (TreeNode t1 in tmpNode.Nodes)
{
if (t1.Tag.ToString()== szKey)
{
tn=t1;
break;
}
else if (t1.Nodes.Count >0) myQ.Enqueue (t1); //入队
}
if (tn!=null) break;
}
tmpNode=null;
myQ.Clear();
myQ=null;
return tn;
}
yumanqing 2007-03-07
  • 打赏
  • 举报
回复
UP
shilei831115 2007-03-06
  • 打赏
  • 举报
回复
只要你能操作当前节点 CurrentNode
就可以用Parent找到父节点
然后再用Parent的Nodes.Add()方法不就可以了

你是不是取不到当前节点阿?
yumanqing 2007-03-06
  • 打赏
  • 举报
回复
我知道,怎么找到父节点呢?
teachman_999 2007-03-06
  • 打赏
  • 举报
回复
C#也是Nodes.Add撒
yumanqing 2007-03-06
  • 打赏
  • 举报
回复
自己顶一下
wdy9927 2007-03-06
  • 打赏
  • 举报
回复
你得有你自己选择父节点的规则,才能找父节点。

比如当前选中的,treeView.SelectedNode
或者是Tag是特殊内容的, 递归遍历所有的Node。



找到后加就好办了, node.Add 就行了。
yumanqing 2007-03-06
  • 打赏
  • 举报
回复
只有用遍历 + 递归的方法吗?
马古尼朵儿 2007-03-06
  • 打赏
  • 举报
回复
1 找父节点
node为当前节点
if (node.Parent is TreeNode)
pnode = (TreeNode)node.Parent;

2 父节点.add(子节点);
midymidy 2007-03-06
  • 打赏
  • 举报
回复
使用遍历进行查找

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧