it-swarm.com.ru

Как определить, является ли выбранный узел дочерним или родительским узлом в TreeView?

Как узнать, является ли выбранный узел дочерним или родительским узлом в элементе управления TreeView?

18
Priyanka

Как именно вы реализуете такую ​​проверку, зависит от того, как вы определяете «дочерние» и «родительские» узлы. Но есть два свойства, предоставляемые каждым объектом TreeNode, которые предоставляют важную информацию:

  1. Свойство Nodes возвращает коллекцию объектов 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.");
    }
    
31
Cody Gray

Для этого вы можете использовать свойство TreeNode.Parent .

Если его значение является null- ссылкой, узел находится на корневом уровне.

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

Попробуй это 

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

Для корневого узла является родительский TreeView .. можно проверить, если мы сравниваем типы ->

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