2010-03-22 10 views

Répondre

7

Vous pouvez créer une nouvelle classe qui hérite de la TreeNode. Pour chaque valeur que vous souhaitez stocker dans le todeode, créez une propriété pour cette valeur. Lorsque vous travaillez avec Treeview, il vous suffit de convertir le TreeNode en votre classe TreeNode personnalisée.

Exemple:

public class JobTreeNode : TreeNode { 

    private int intField1; 

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

Utilisation (ajouté après commentaires)

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


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

J'ai essayé mais je ne peux pas afficher les valeurs dans la zone de texte lorsque je sélectionne un nœud. Exemple: textbox1.Text = treeView1.SelectedNode.Name.ToString(); <- fonctionne textbox2.Text = treeView1.SelectedNode.IntField ou IntField1.ToString(); <- ne fonctionne pas – Caslav

+2

Vous devez cast le SelectedNode. Quelque chose comme ceci: ((CustomNode) (treeView1.SelectedNode)). Field1; – Rhapsody

+0

Vous devez également vous assurer que vous ajoutez des éléments _Add_ JobTreeNode. –

1

Vous pouvez créer une classe légère pour tenir votre float1..6 et mettre un exemple dans la balise propriété.

Alternativement, vous pouvez utiliser un Dictionary<TreeNode, FloatsClass> ou peut-être utiliser 6 séparés Dictionary<TreeNode, float>. Notez que dotNet 4 a un nouveau type Tuple<A,B,C,...> pour rendre ce genre de situation un peu plus facile.

3

La propriété Tag de TreeNode est "object". Ne pouvez-vous pas simplement stocker vos données à l'aide d'une sorte de base de données?

Questions connexes