2010-03-22 12 views

Antwort

7

Sie können eine neue Klasse erstellen, die die TreeNode erbt. Erstellen Sie für jeden Wert, den Sie im Baumode speichern möchten, eine Eigenschaft für diesen Wert. Wenn Sie mit der Treeview arbeiten, können Sie einfach den TreeNode auf Ihre benutzerdefinierte TreeNode-Klasse anwenden.

Beispiel:

public class JobTreeNode : TreeNode { 

    private int intField1; 

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

Usage (zugegeben nach Kommentaren)

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


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

Ich habe versucht, aber ich kann nicht Werte in Textfeld anzeigen, wenn ich Knoten auswähle. Beispiel: textbox1.Text = treeView1.SelectedNode.Name.ToString(); <- funktioniert textbox2.Text = treeView1.SelectedNode.IntField oder IntField1.ToString(); <- funktioniert nicht – Caslav

+2

Sie müssen den SelectedNode umwandeln. In etwa so: ((CustomNode) (treeView1.SelectedNode)). Field1; – Rhapsody

+0

Sie müssen auch sicherstellen, dass Sie _Add_ JobTreeNode Elemente. –

1

Sie eine leichte Klasse erstellen können Ihre float1..6 zu halten und eine Instanz in den Tag legen Eigentum.

Alternativ können Sie auch Dictionary<TreeNode, FloatsClass> verwenden oder 6 separate Dictionary<TreeNode, float> verwenden.

Beachten Sie, dass dotNet 4 einen neuen Typ Tuple<A,B,C,...> hat, um diese Art von Situationen ein wenig einfacher zu machen.

3

Die Tag-Eigenschaft von TreeNode ist "Objekt". Können Sie Ihre Daten nicht einfach mit einer Datenklasse speichern?

Verwandte Themen