une classe Treenode a p>
Étiquette de nom de texte p>
J'ai besoin d'attribuer plus de valeurs à une classe Treenode comme Float1, Float2, ... Float6. P>
Comment puis-je faire ça ??? Pls aide. P>
thx, Caslav P>
4 Réponses :
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.
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;
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 i> Eléments JobTreinode.
Merci beaucoup ... le casting était le problème. Maintenant ça marche comme un charme !! Acclamations
Vous pouvez créer une classe légère pour contenir votre flotteur1..6 et mettre une instance dans la propriété Tag. p>
Alternativement, vous pouvez utiliser un dictionnaire Notez que DotNet 4 a un nouveau
Dictionnaire
TUPLE CODE> Type pour rendre ce genre de situations un peu plus facile. P>
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? P>
Vous auriez pu avoir: puis réglez la propriété Tag sur votre Treenode: p> pour lire les propriétés: p > var nodeproperties = TreeViewMyTree.SelectedNode.Tag as TreeNodeProperties;
MessageBox.Show("Float5: "+nodeproperties.Float5);