7
votes

Comment ajouter plus de valeurs à une classe Treenode en C #

une classe Treenode a

Étiquette de nom de texte

J'ai besoin d'attribuer plus de valeurs à une classe Treenode comme Float1, Float2, ... Float6.

Comment puis-je faire ça ??? Pls aide.

thx, Caslav


0 commentaires

4 Réponses :


7
votes

Vous pouvez créer une nouvelle classe qui hérite de la Treenode. Pour chaque valeur que vous souhaitez stocker dans Treenode, créez une propriété pour cette valeur. Lorsque vous travaillez avec l'arborescence, envoyez simplement la Treenode à votre classe Treenode personnalisée.

Exemple: strong> p> xxx pré>

usage strong> (ajouté après des commentaires) p>

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


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


4 commentaires

J'ai essayé cela, mais je ne peux pas afficher les valeurs dans la zone de texte lorsque je sélectionne un nœud. Exemple: textbox1.text = arboresview1.selectednode.name.tostring (); <- oeuvres textbox2.text = arboresview1.selectednode.intfield ou intfield1.tostring (); <- ne fonctionne pas


Vous devez lancer le nœud sélectionné. Quelque chose comme ceci: ((Customnode) (TreeView1.SelectedNode))) Field1;


Vous devez également vous assurer que vous ajoutez Eléments JobTreinode.


Merci beaucoup ... le casting était le problème. Maintenant ça marche comme un charme !! Acclamations



1
votes

Vous pouvez créer une classe légère pour contenir votre flotteur1..6 et mettre une instance dans la propriété Tag.

Alternativement, vous pouvez utiliser un dictionnaire ou peut-être utiliser 6 distincts Dictionnaire . .

Notez que DotNet 4 a un nouveau TUPLE Type pour rendre ce genre de situations un peu plus facile.


0 commentaires

5
votes

La propriété Tag de Treenode est "Objet". Vous ne pouvez pas simplement stocker vos données à l'aide d'une source de données de type?


0 commentaires

1
votes

Vous auriez pu avoir: xxx pré>

puis réglez la propriété Tag sur votre Treenode: p> xxx pré>

pour lire les propriétés: p >

var nodeproperties = TreeViewMyTree.SelectedNode.Tag as TreeNodeProperties;
MessageBox.Show("Float5: "+nodeproperties.Float5);


0 commentaires