【问题标题】:How can I determine if the selected node is a child or parent node in TreeView?如何确定所选节点是 TreeView 中的子节点还是父节点?
【发布时间】:2011-08-06 18:53:11
【问题描述】:

如何判断选中的节点是TreeView控件中的子节点还是父节点?

【问题讨论】:

    标签: c# .net winforms treeview treenode


    【解决方案1】:

    对于根节点是父TreeView..可以检查我们是否比较类型->

    if (currentNode.Parent.GetType() == typeof(TreeView)) 
    {
        // root node
    }
    

    【讨论】:

      【解决方案2】:

      试试这个

      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.";
         }
      }
      

      【讨论】:

        【解决方案3】:
        treeview.SelectedNode == null
        

        是最好的选择。

        【讨论】:

        • 我不明白这是如何回答这个问题的。
        【解决方案4】:

        您可以为此使用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.
        }
        

        【讨论】:

          【解决方案5】:

          具体如何实施此类检查取决于您如何定义“子”和“父”节点。但是每个TreeNode 对象都有两个提供重要信息的属性:

          1. 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.");
            }
            
          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.");
            }
            

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多