Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

Попробуйте это

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

Ответ 4

treeview.SelectedNode == null

лучше всего выбрать.

Ответ 5

Для root node является родительский TreeView.. можно проверить, сравниваем ли типы →

if (currentNode.Parent.GetType() == typeof(TreeView)) 
{
    // root node
}