2010-08-05 8 views
25

मैं थोड़ा सी #/Winforms एप्लिकेशन में एक वृक्षदृश्य के साथ प्रयोग कर रहा हूं। मैंने प्रोग्रामिक रूप से ट्रीव्यूव में एक छविसूची सौंपी है, और सभी नोड्स उनके आइकन को ठीक दिखाते हैं, लेकिन जब मैं नोड पर क्लिक करता हूं, तो उसका आइकन बदलता है (छविसूची में पहली छवि में)। मैं अपरिवर्तित रहने के लिए आइकन कैसे प्राप्त कर सकता हूं?Winforms से बचने के लिए कैसे करें Treeview आइकन बदलता है जब आइटम

बीटीडब्लू: "चयनित इमेज इंडेक्स" को "(कोई नहीं)" पर सेट किया गया है, क्योंकि मुझे वास्तव में यह नहीं पता कि इसे कैसे सेट किया जाए, क्योंकि छवि-सूचकांक नोड्स के लिए अलग है (मुझे लगता है?)।

अद्यतन:

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      treeView1.BeginUpdate(); 
      treeView1.Nodes.Clear(); 
      treeView1.Nodes.Add("root","Project", 0); 

      treeView1.Nodes[0].Nodes.Add("Foo", "Foo", 2); 
      treeView1.Nodes[0].Nodes[0].Nodes.Add("Fizz", "Fizz", 3); 
      treeView1.Nodes[0].Nodes[0].Nodes.Add("Buzz", "Buzz", 3); 

      treeView1.Nodes[0].Nodes.Add("Bar", "Bar", 1); 
      treeView1.Nodes[0].Nodes[1].Nodes.Add("Fizz", "Fizz", 2); 
      treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("Buzz", "Buzz", 3); 

      treeView1.EndUpdate(); 
      treeView1.ImageList = imageList1; 
     } 
    } 
} 

उत्तर

41

सीधे शब्दों में ImageIndex रूप में एक ही मूल्य के लिए प्रत्येक नोड के लिए SelectedImageIndex सेट: यहाँ (मैं दृश्य स्टूडियो एक्सप्रेस 2008 का उपयोग कर रहा) आवेदन के कोड है। तो, आप अपने नोड प्रोग्राम के बना रहे हैं तो:

 TreeNode node = new TreeNode("My Node" ,1, 1); 

यदि आप डिजाइन समय संपादक का उपयोग कर 'एक ही बात कर सकते हैं:

 TreeNode node = new TreeNode("My Node"); 
     node.ImageIndex = 1; 
     node.SelectedImageIndex = 1; 

या आप निर्माता में बहुत निर्दिष्ट कर सकते हैं डिजाइन समय पर नोड्स जोड़ रहे हैं। आपको केवल चयनित इमेज इंडेक्स को नोड स्तर पर सेट करने की आवश्यकता है, न कि TreeView स्तर पर।

+0

बढ़िया है, मुझे पता था कि इस मृत-सरल हो सकता है, जहां देखने के लिए सिर्फ इतना पता नहीं था। धन्यवाद! (मैं इसे 7 मिनट में समाधान के रूप में स्वीकार नहीं कर सकता, ऐसा करने पर ऐसा करेगा)। –

3

हाय आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

TreeNode Node = eventArgs.Node; 
Node.SelectedImageKey = Node.ImageKey; 
संबंधित मुद्दे