2012-12-08 15 views
5

Kendi C# tabanlı uygulama başlatıcımı yazıyorum ve TreeView'u doldurup uygulama kısayollarını başlatmaya çalışırken, nasıl eklendiğimi anlayamıyorum görüntü olarak simgeleri TreeView. dosyaları almak için Benim şu anki kodudur: BenBir TreeView uygulamasındaki simgelerin görüntülerini ayarlama

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; 
    } 

temel sorun özellikle düğüme treelist en ımagelist simgeyi ekliyor. Ben eklemem gerekiyor biliyorum:

lstPrograms.ImageList.Images.Add(Icon.ExtractAssociatedIcon()); 
aslında görüntü listesine simge eklemek için

, ben özellikle resmin endeksi, daha sonra göreceli dosya ile TreeView eklemek olduğunu nasıl giriş yapabiliriz?

cevap

10

Birincisi, kaynak olarak resim eklemek ve resim listesi tanımlamak: Sonra

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 ait ImageList özelliğini ayarlayın: Sonra

treeView1.ImageList = Form1.ImageList; 

, sen düğümleri oluştururken, için Belirli bir düğümde aşağıdakileri kullanın:

applicationNode.ImageKey = "Application"; 
applicationNode.SelectedImageKey = "Application";