Un TreeNode haCome aggiungere più valori a una classe TreeNode in classe C#
Testo Nome Tag
ho bisogno di assegnare più valori ad una classe TreeNode come float1, float2, ... float6.
Come posso fare questo ??? aiuto di pls.
Thx, Caslav
Un TreeNode haCome aggiungere più valori a una classe TreeNode in classe C#
Testo Nome Tag
ho bisogno di assegnare più valori ad una classe TreeNode come float1, float2, ... float6.
Come posso fare questo ??? aiuto di pls.
Thx, Caslav
È possibile creare una nuova classe che eredita il TreeNode. Per ogni valore che si desidera memorizzare nel treenode, creare una proprietà per quel valore. Quando si lavora con Treeview, basta lanciare il TreeNode sulla classe TreeNode personalizzata.
Esempio:
public class JobTreeNode : TreeNode {
private int intField1;
public int Field1 {
get {
return intField1;
}
set {
intField1 = value;
}
}
}
Uso (aggiunto dopo i commenti)
// Add the node
JobTreeNode CustomNode = new JobTreeNode();
CustomNode.Text = "Test";
CustomNode.Field1 = 10
treeView1.Nodes.add(CustomNode);
// SelectedNode
((CustomNode)(treeView1.SelectedNode)).Field1;
È possibile creare una classe leggera per tenere il vostro float1..6 e mettere un'istanza nel tag proprietà.
In alternativa, è possibile utilizzare uno Dictionary<TreeNode, FloatsClass>
o forse utilizzare 6 separati Dictionary<TreeNode, float>
.
Si noti che dotNet 4 ha un nuovo tipo Tuple<A,B,C,...>
per rendere un po 'più semplice questo tipo di situazioni.
La proprietà Tag di TreeNode è "oggetto". Non puoi semplicemente archiviare i tuoi dati usando un dataclass di qualche tipo?
L'ho provato ma non riesco a visualizzare i valori nella casella di testo quando seleziono il nodo. Esempio: textbox1.Text = treeView1.SelectedNode.Name.ToString(); <- works textbox2.Text = treeView1.SelectedNode.IntField o IntField1.ToString(); <- non funziona – Caslav
Devi lanciare il SelectedNode. Qualcosa di simile: ((CustomNode) (treeView1.SelectedNode)). Field1; – Rhapsody
Devi anche assicurarti di _Aggiungere gli elementi JobTreeNode. –