TreeNode maJak dodać więcej wartości do klasy TreeNode w C# klasa
Tekst Name Tag
muszę przypisać więcej wartości do klasy TreeNode jak float1, float2 ... float6.
Jak mogę to zrobić? pls pomoc.
Thx, Caslav
TreeNode maJak dodać więcej wartości do klasy TreeNode w C# klasa
Tekst Name Tag
muszę przypisać więcej wartości do klasy TreeNode jak float1, float2 ... float6.
Jak mogę to zrobić? pls pomoc.
Thx, Caslav
Można utworzyć nową klasę, która dziedziczy TreeNode. Dla każdej wartości, którą chcesz przechowywać w treenode, utwórz właściwość dla tej wartości. Podczas pracy z widokiem drzewa po prostu przesuń TreeNode do niestandardowej klasy TreeNode.
Przykład:
public class JobTreeNode : TreeNode {
private int intField1;
public int Field1 {
get {
return intField1;
}
set {
intField1 = value;
}
}
}
Wykorzystanie (dodane po komentarzach)
// Add the node
JobTreeNode CustomNode = new JobTreeNode();
CustomNode.Text = "Test";
CustomNode.Field1 = 10
treeView1.Nodes.add(CustomNode);
// SelectedNode
((CustomNode)(treeView1.SelectedNode)).Field1;
Można stworzyć lekką klasę trzymać float1..6 i umieścić instancję w tagu własność.
Alternatywnie możesz użyć Dictionary<TreeNode, FloatsClass>
lub użyć 6 oddzielnych Dictionary<TreeNode, float>
.
Należy zauważyć, że dotNet 4 ma nowy typ Tuple<A,B,C,...>
, aby ułatwić tego typu sytuacje.
Właściwość Tag obiektu TreeNode to "obiekt". Nie możesz po prostu przechowywać tam swoich danych przy użyciu jakiejś puszki z danymi?
Próbowałem, ale nie mogę wyświetlać wartości w polu tekstowym po wybraniu węzła. Przykład: textbox1.Text = treeView1.SelectedNode.Name.ToString(); <- działa textbox2.Text = treeView1.SelectedNode.IntField lub IntField1.ToString(); <- nie działa – Caslav
Musisz rzucić SelectedNode. Coś takiego: ((węzeł niestandardowy) (treeView1.SelectedNode)). Pole 1; – Rhapsody
Należy również upewnić się, że elementy _Add_ JobTreeNode. –