2010-03-22 9 views
7

एक TreeNode वर्गकैसे सी # में एक TreeNode वर्ग के लिए अधिक मान जोड़ने के लिए

पाठ नाम टैग

मैं float1, float2, ... float6 की तरह एक TreeNode वर्ग के लिए अधिक मान निर्दिष्ट करने की जरूरत है।

मैं यह कैसे कर सकता हूं ??? कृपया मदद करें।

Thx, Caslav

उत्तर

7

आप एक नया वर्ग जो TreeNode विरासत में बना सकते हैं। प्रत्येक मान के लिए आप ट्रीनोड में स्टोर करना चाहते हैं, उस मान के लिए एक संपत्ति बनाएं। ट्रीव्यू के साथ काम करते समय, बस ट्री नोड को अपने कस्टम ट्रीनोड क्लास में डालें।

उदाहरण:

public class JobTreeNode : TreeNode { 

    private int intField1; 

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

प्रयोग (टिप्पणियों के बाद जोड़ा)

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


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

मैंने कोशिश की लेकिन जब मैं नोड का चयन करता हूं तो मैं टेक्स्टबॉक्स में मान प्रदर्शित नहीं कर सकता। उदाहरण: टेक्स्टबॉक्स 1.Text = treeView1.SelectedNode.Name.ToString(); <- टेक्स्टबॉक्स 2.Text = treeView1.SelectedNode.IntField या IntField1.ToString(); <- काम नहीं करता – Caslav

+2

आपको चयनित नोड डालना होगा। ऐसा कुछ: ((कस्टम नोड) (treeView1.SelectedNode)) फ़ील्ड 1; – Rhapsody

+0

आपको यह भी सुनिश्चित करना होगा कि आप _Add_ JobTreeNode तत्व हैं। –

1

आप अपने float1..6 धारण करने के लिए एक हल्के वर्ग बना सकते हैं और टैग में एक उदाहरण रख सकते हैं संपत्ति।

वैकल्पिक रूप से, आप Dictionary<TreeNode, FloatsClass> का उपयोग कर सकते हैं या शायद 6 अलग Dictionary<TreeNode, float> का उपयोग कर सकते हैं।

ध्यान दें कि डॉटनेट 4 में इस तरह की स्थितियों को थोड़ा आसान बनाने के लिए एक नया Tuple<A,B,C,...> प्रकार है।

3

ट्रीनोड की टैग संपत्ति "ऑब्जेक्ट" है। क्या आप किसी प्रकार के डाटाकालास का उपयोग करके वहां अपना डेटा स्टोर नहीं कर सकते?

संबंधित मुद्दे