it-swarm.com.de

Wie kann ich feststellen, ob der ausgewählte Knoten ein untergeordneter oder übergeordneter Knoten in TreeView ist?

Wie kann ich herausfinden, ob der ausgewählte Knoten ein untergeordneter Knoten oder ein übergeordneter Knoten im TreeView-Steuerelement ist?

18
Priyanka

Wie genau Sie eine solche Prüfung implementieren, hängt davon ab, wie Sie "untergeordnete" und "übergeordnete" Knoten definieren. Es gibt jedoch zwei Eigenschaften, die von jedem TreeNode-Objekt verfügbar gemacht werden und wichtige Informationen liefern:

  1. Die Nodes-Eigenschaft gibt die Auflistung der TreeNode-Objekte zurück, die in diesem bestimmten Knoten enthalten sind. Indem Sie einfach prüfen, wie viele untergeordnete Knoten der ausgewählte Knoten enthält, können Sie feststellen, ob es sich um einen übergeordneten Knoten handelt oder nicht:

    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. Um weitere Informationen zu erhalten, können Sie auch den Wert der Parent-Eigenschaft überprüfen. Wenn dieser Wert null ist, befindet sich der Knoten auf der Wurzelebene der TreeView (er hat keine übergeordnete Komponente):

    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.");
    }
    
31
Cody Gray

Sie können dazu die Eigenschaft TreeNode.Parent verwenden.

Wenn der Wert eine null- Referenz ist, befindet sich der Knoten auf der Stammebene.

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.
}
6
Ani

Versuche dies 

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

Für den Wurzelknoten ist das übergeordnete TreeView. Es ist möglich zu prüfen, ob wir die Typen von -> vergleichen

if (currentNode.Parent.GetType() == typeof(TreeView)) 
{
    // root node
}
0
HuckFin.7b