2010-03-22 14 views

Respuesta

7

Puede crear una nueva clase que hereda el TreeNode. Para cada valor que desee almacenar en el treenode, cree una propiedad para ese valor. Al trabajar con Treeview, simplemente transfiera TreeNode a su clase TreeNode personalizada.

Ejemplo:

public class JobTreeNode : TreeNode { 

    private int intField1; 

    public int Field1 { 
     get { 
      return intField1; 
     } 
     set { 
      intField1 = value; 
     } 
    } 
} 

Uso (añadido después de los comentarios)

// Add the node 
JobTreeNode CustomNode = new JobTreeNode(); 
CustomNode.Text = "Test"; 
CustomNode.Field1 = 10 
treeView1.Nodes.add(CustomNode); 


// SelectedNode 
((CustomNode)(treeView1.SelectedNode)).Field1; 
+0

Lo intenté, pero no puedo mostrar los valores en el cuadro de texto cuando selecciono el nodo. Ejemplo: textbox1.Text = treeView1.SelectedNode.Name.ToString(); <- works textbox2.Text = treeView1.SelectedNode.IntField o IntField1.ToString(); <- doesn't work – Caslav

+2

Tienes que emitir el SelectedNode. Algo como esto: ((CustomNode) (treeView1.SelectedNode)). Field1; – Rhapsody

+0

También debe asegurarse de que los elementos _Add_ JobTreeNode. –

1

Puede crear una clase de peso ligero para mantener su float1..6 y poner un ejemplo, en la etiqueta propiedad.

Alternativamente, puede usar un Dictionary<TreeNode, FloatsClass> o tal vez usar 6 Dictionary<TreeNode, float> separados.

Tenga en cuenta que dotNet 4 tiene un nuevo tipo Tuple<A,B,C,...> para facilitar este tipo de situaciones.

3

La propiedad Tag de TreeNode es "objeto". ¿No puedes simplemente almacenar tus datos allí usando una clase de datos de algún tipo?

Cuestiones relacionadas