Comment puis-je déterminer si le noeud sélectionné est un noeud enfant ou parent dans TreeView?
Comment puis-je savoir si le noeud choisi est un noeud enfant ou un noeud parent dans le TreeView
contrôle?
5 réponses
Exactement comment mettre en œuvre une telle vérification dépend de la définition de "enfant" et "parent" nœuds. Mais il y a deux propriétés exposées par chaque TreeNode
objet que de fournir des informations importantes:
Nodes
propriété renvoie la collection deTreeNode
objets contenus par ce noeud particulier. Ainsi, en vérifiant simplement pour voir combien de noeuds enfant le noeud sélectionné contient, vous pouvez déterminer si oui ou non c'est un parent noeud: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."); }
pour obtenir plus d'information, vous pouvez aussi examiner la valeur de
Parent
propriété. Si cette valeur estnull
, alors le noeud est au niveau de la racine duTreeView
(il n'a pas un 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."); }
Vous pouvez utiliser le TreeNode.Parent
propriété.
Si sa valeur est null
-référence, le noeud est au niveau de la 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.
}
Essayez ceci
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.";
}
}
Pour le nœud racine est le parent TreeView .. il est possible de vérifier si nous comparons les types de ->
if (currentNode.Parent.GetType() == typeof(TreeView))
{
// root node
}