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:
Nodespropriété renvoie la collection deTreeNodeobjets 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
Parentproprié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
}