如何确定所选节点是TreeView
控件中的子节点还是父节点?
问问题
55392 次
5 回答
36
具体如何实施此类检查取决于您如何定义“子”和“父”节点。TreeNode
但是每个对象都有两个提供重要信息的属性:
该
Nodes
属性返回该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."); }
于 2011-04-16T06:00:03.977 回答
7
您可以为此使用该TreeNode.Parent
属性。
如果其值为null
-reference,则节点位于根级别。
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.
}
于 2011-04-16T05:57:31.367 回答
1
尝试这个
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.";
}
}
于 2013-11-26T09:41:00.973 回答
0
对于根节点是父 TreeView .. 可以检查我们是否比较 -> 的类型
if (currentNode.Parent.GetType() == typeof(TreeView))
{
// root node
}
于 2016-10-04T07:52:26.303 回答
-1
treeview.SelectedNode == null
是最好的选择。
于 2012-10-09T03:37:47.343 回答