如何确定所选节点是否是TreeView中的子节点或父节点?
答
您究竟如何实现这种检查取决于您如何定义“子”和“父”节点。但也有由每个TreeNode
对象暴露两个属性提供了重要的信息:
-
的
Nodes
property返回由该特定节点包含TreeNode
对象的集合。因此,通过简单的检查,看看有多少孩子选定节点包含,可以判断它是否是一个父节点:if (selectedNode.Nodes.Count == 0) { MessageBox.Show("The node does not have any children."); } else { MessageBox.Show("The node has children, so it must be a parent."); }
-
为了获得更多的信息,你也可以检查
Parent
的价值属性。如果这个值是null
,那么节点在TreeView
的根目录(它没有父):if (selectedNode.Parent == null) { MessageBox.Show("The node does not have a parent."); } else { MessageBox.Show("The node has a parent, so it must be a child."); }
答
您可以使用TreeNode.Parent
属性。
如果它的值是null
-引用,则该节点位于根级别。
TreeView treeView = ...
var selectedNode = treeView.SelectedNode;
if(selectedNode ! = null)
{
if(selectedNode.Parent == null)
{
// Root-level node
}
else
{
// Child node
}
}
else
{
// A node hasn't been selected.
}
答
试试这个
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
Label1.Text = "";
if(e.Node.Parent!= null &&
e.Node.Parent.GetType() == typeof(TreeNode))
{
Label1.Text = "Parent: " + e.Node.Parent.Text + "\n"
+ "Index Position: " + e.Node.Parent.Index.ToString();
}
else
{
Label1.Text = "This is parent node.";
}
}
答
对于根节点是父TreeView的..它可以检查,如果我们比较的类型 - >
if (currentNode.Parent.GetType() == typeof(TreeView))
{
// root node
}
太感谢你了。 – Priyanka 2011-04-16 07:07:21