treeview中如何根据子节点得到根节点?

sonyicn 2006-03-22 06:12:42
在Windows Form中,我添加了这样一个事件:
treeView1_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
现在我想根据e.Node来得到它的根节点,请问应当怎样实现?
...全文
782 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sonyicn 2006-03-22
  • 打赏
  • 举报
回复
谢谢
aSalt 2006-03-22
  • 打赏
  • 举报
回复
同意楼上,递归实现

Node findparent(Node n)
{
if (n.GetParent!=null)
findparent(n)
else
return n;
}
selina_liuy 2006-03-22
  • 打赏
  • 举报
回复
用递规的方法,算法如下:node 为结点,函数最终返回根结点

node findparent ( node )
{
if (node.getparent == null)
{
return node;
}
else
{
return findparent(node.getparent)
}
}
sonyicn 2006-03-22
  • 打赏
  • 举报
回复
但是getParent()方法只能得到该节点的父级节点啊,我是想得到该节点的根节点
diandian82 2006-03-22
  • 打赏
  • 举报
回复
GETPARENT
20011521 2006-03-22
  • 打赏
  • 举报
回复
在.Net Framework1.1的环境下,调用TreeView控件,生成树图,点选父节点,则所有的子结点也选中,取消选中的父节点下的子结点,则父节点也取消选中状态。

TreeView.js

function check(treeview1)
{
cIndex=treeview1.clickedNodeIndex;
pNode=treeview1.getTreeNode(cIndex);
Checked(pNode);
UnChecked(pNode);
}

function Checked(node)
{
var NodeArray=node.getChildren();
checked = node.getAttribute("checked");
for(var i=0;i<NodeArray.length;i++)
{
cNode=NodeArray[i];
cNode.setAttribute('checked',checked);
if (cNode.getChildren().length > 0)
{
Checked(cNode);
}
}
}

function UnChecked(node)
{
checked = node.getAttribute("Checked");
if (!checked && node.getParent()!= null)
{
node.getParent().setAttribute('checked',checked);
UnChecked(node.getParent());
}
}

110,539

社区成员

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

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

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