如何确定所选节点是TreeView中的子节点还是父节点?

Pri*_*nka 19 .net c# treeview treenode winforms

如何确定所选节点是TreeView控件中的子节点还是父节点?

Cod*_*ray 33

具体如何实现这样的检查取决于您如何定义"子"和"父"节点.但是每个TreeNode对象都有两个属性可以提供重要信息:

  1. 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.");
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 要获取更多信息,还可以检查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.");
    }
    
    Run Code Online (Sandbox Code Playgroud)


Ani*_*Ani 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.
}
Run Code Online (Sandbox Code Playgroud)