我的Windows应用程序中有一个TreeView。在这个TreeView中,用户可以为这些根节点添加一些根节点和一些子节点,也为这些子节点添加一些子节点等等......
例如:
Root1
A
B
C
D
E
Root2
F
G
.
.
.
现在我的问题是,如果我在节点'E',找到它的第一个根节点('Root1')的最佳方法是什么?
答案 0 :(得分:13)
这是一个小方法:
private TreeNode FindRootNode(TreeNode treeNode)
{
while (treeNode.Parent != null)
{
treeNode = treeNode.Parent;
}
return treeNode;
}
你可以像这样调用你的代码:
var rootNode = FindRootNode(currentTreeNode);
答案 1 :(得分:0)
public TreeNode RootTreeNode(TreeNode n) { while (n.Level > 0) { n = n.Parent; } return n; }
获取root treenode的示例:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
var node = (e == null ? ((System.Windows.Forms.TreeView)sender).SelectedNode : e.Node);
var rootNode = RootTreeNode(node);
}
享受