utilizar net llenar ejemplos dinamico desde datos como c# .net winforms treeview treenode

c# - net - ¿Cómo puedo determinar si el nodo seleccionado es un nodo secundario o primario en TreeView?



treeview c# ejemplos (5)

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

  1. La propiedad Nodes devuelve la colección de objetos TreeNode contenidos por ese nodo en particular. Entonces, simplemente verificando cuántos nodos secundarios contiene el nodo seleccionado, puede determinar si es un nodo principal o no:

    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 propiedad principal. Si este valor es null , entonces el nodo se encuentra en el nivel raíz de TreeView (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."); }

¿Cómo puedo saber si el nodo seleccionado es un nodo secundario o un nodo primario en el control TreeView ?


Para el nodo raíz es el TreeView principal ... es posible verificar si comparamos los tipos de ->

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


Prueba esto

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


Puedes usar la propiedad TreeNode.Parent para esto.

Si su valor es una referencia null , el nodo se encuentra en el nivel 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. }


treeview.SelectedNode == null

Es lo mejor para elegir.