2011-04-16 48 views

Respuesta

30

La forma exacta en que implemente dicha verificación depende de cómo defina los nodos "hijo" y "principal". Pero hay dos propiedades expuestas por cada objeto TreeNode que proporcionan información importante:

  1. Los Nodes property devuelve la colección de TreeNode objetos contenida por ese nodo particular. Por lo tanto, simplemente comprobando para ver cuántos nodos hijos del nodo seleccionado contiene, se puede determinar si es o no es un nodo padre:

    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. Para obtener más información, también puede examinar el valor de la Parent propiedad. Si este valor es null, entonces el nodo está en el nivel raíz de la TreeView (que no tiene un padre):

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

muchas gracias. – Priyanka

5

Puede usar la propiedad TreeNode.Parent para esto.

Si su valor es null -referencia, el nodo está en el nivel de raíz.

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. 
} 
0
treeview.SelectedNode == null 

es el mejor para elegir.

+0

No entiendo cómo responde esto a la pregunta. – JDB

1

probar este

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

Para el nodo raíz es el TreeView padres .. es posible comprobar si se comparan los tipos de ->

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