web-dev-qa-db-fra.com

Comment puis-je déterminer si le nœud sélectionné est un nœud enfant ou parent dans TreeView?

Comment savoir si le nœud sélectionné est un nœud enfant ou un nœud parent dans le contrôle TreeView?

18
Priyanka

La manière dont vous implémentez une telle vérification dépend de la manière dont vous définissez les nœuds "enfant" et "parent". Mais il existe deux propriétés exposées par chaque objet TreeNode qui fournissent des informations importantes:

  1. La propriété Nodes renvoie la collection d'objets TreeNode contenus par ce nœud particulier. Ainsi, en vérifiant simplement combien de nœuds enfants le nœud sélectionné contient, vous pouvez déterminer s'il s'agit ou non d'un nœud parent:

    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. Pour obtenir plus d'informations, vous pouvez également examiner la valeur de la propriété Parent. Si cette valeur est null, le noeud se trouve au niveau racine de la TreeView (il n'a pas de parent):

    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

Vous pouvez utiliser la propriété TreeNode.Parent pour cela.

Si sa valeur est une référence null-, le nœud se trouve au niveau racine.

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

Essaye ça 

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

Pour le nœud racine est le TreeView parent.

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