2012-12-08 17 views
5

में आइकन से छवियों को सेट करना मैं अपना स्वयं का सी #-आधारित एप्लिकेशन लॉन्चर लिख रहा हूं, और, जबकि मुझे इसे TreeView पॉप्युलेट करने और इसमें एप्लिकेशन शॉर्टकट लॉन्च करने के लिए मिलता है, तो मुझे लगता है कि कैसे जोड़ना है TreeView पर छवियों के रूप में प्रतीक। फ़ाइलें प्राप्त करने के लिए मेरे वर्तमान कोड है:ट्री व्यू

private void homeMenu_Load(object sender, EventArgs e) 
    { 
     this.ShowInTaskbar = false; 
     if (Directory.Exists((Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "\\Roaming\\Launcher"))) 
     { 

     } 
     else 
     { 
      Directory.CreateDirectory(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "\\Roaming\\Launcher"); 
     } 

     DirectoryInfo launcherFiles = new DirectoryInfo(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "\\Roaming\\Launcher"); 

     lstPrograms.Nodes.Add(CreatingDirectoryTreeNode(launcherFiles)); 

     lstPrograms.Sort(); 

    } 

    private static TreeNode CreatingDirectoryTreeNode(DirectoryInfo directoryInfo) 
    { 
     var directoryNode = new TreeNode(directoryInfo.Name); 

     foreach (var directory in directoryInfo.GetDirectories()) 
     { 
      directoryNode.Nodes.Add(CreatingDirectoryTreeNode(directory)); 
     } 

     foreach (var file in directoryInfo.GetFiles()) 
     { 
      directoryNode.Nodes.Add(new TreeNode(file.Name)); 
     } 

     return directoryNode; 
    } 

मुख्य समस्या मैं विशेष नोड के लिए TreeList के ImageList करने के लिए चिह्न जोड़ रहा है। मैं जानता हूँ कि मैं जोड़ने की जरूरत:

lstPrograms.ImageList.Images.Add(Icon.ExtractAssociatedIcon()); 

वास्तव में छवि सूची में आइकन जोड़ने के लिए, मुझे लगता है कि विशेष छवि के सूचकांक, तो यह TreeView को अपने रिश्तेदार फ़ाइल के साथ जोड़ने के लिए कैसे मिलता है?

उत्तर

10

पहले, संसाधनों के रूप में छवियों को जोड़ और अपनी छवि सूची निर्धारित: फिर

static ImageList _imageList; 
public static ImageList ImageList 
{ 
    get 
    { 
     if (_imageList == null) 
     { 
      _imageList = new ImageList(); 
      _imageList.Images.Add("Applications", Properties.Resources.Image_Applications); 
      _imageList.Images.Add("Application", Properties.Resources.Image_Application); 
     } 
     return _imageList; 
    } 
} 

, TreeView की ImageList गुण सेट: फिर

treeView1.ImageList = Form1.ImageList; 

, जब आप नोड्स बनाने के लिए, एक विशिष्ट नोड, उपयोग करें:

applicationNode.ImageKey = "Application"; 
applicationNode.SelectedImageKey = "Application"; 
संबंधित मुद्दे