2012-02-11 2 views
2

еще раз у меня есть проблема, что я не могу, похоже, придумать решение. так вот, у меня есть ListView, отображающий каталоги файлов изображений, я хочу, чтобы listview отображал эти изображения для этих файлов, проблема в том, что мне также нужны изображения, которые должны быть изменены программой на уровне пикселей, поэтому i сделайте это в отдельном потоке, поэтому я хочу сделать мой уже существующий список PictureBox измененных изображений и сопоставить имена файлов с соответствующим изображением. Есть идеи, как это сделать?Listview без списка изображений?

вот что я до сих пор

public static List<PictureBox> ContentItems = new List<PictureBox>(); 
... 
public static string ContentDirectory = ""; 

    private void FileTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) 
    { 
     TreeNode newSelected = e.Node; 
     FileList.Items.Clear(); 
     DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag; 
     ListViewItem.ListViewSubItem[] subItems; 
     ListViewItem item = null; 

     foreach (FileInfo file in nodeDirInfo.GetFiles()) 
     { 
      item = new ListViewItem(file.Name); 
      subItems = new ListViewItem.ListViewSubItem[] 
       { new ListViewItem.ListViewSubItem(item, "File"), 
       new ListViewItem.ListViewSubItem(item, 
        file.LastAccessTime.ToShortDateString())}; 

      item.SubItems.AddRange(subItems); 
      FileList.Items.Add(item); 
     } 

     FileList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); 
    } 
+0

Какие конкретные проблемы вы сталкиваются с тем, что вы уже пробовали? –

+0

Я не знаю, куда идти дальше, у меня есть настройка listview, и у меня есть изображения, которые я хочу поместить в виджет и помещать в список фотошоп, но я не знаю, как сопоставить файлы с правильным изображением. – Dusty

+0

Вы ищете способ сопоставить свои элементы ListViewItem с изображениями в ContentItems, способом отображения изображения из ContentItems в качестве значка «ListViewItem» или того и другого? 'PictureBox' не очень хорошо работают, как иконки ListViewItem. –

ответ

0

мне пришлось использовать список изображений после того, как все Heres, как я получил его на работу:

void FileTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) 
    { 
     TreeNode newSelected = e.Node; 
     FileList.Items.Clear(); 
     DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag; 
     ListViewItem.ListViewSubItem[] subItems; 
     ListViewItem item = null; 

     ContentImg.Images.Clear(); 
     int CurrentImg = 0; 

     foreach (FileInfo file in nodeDirInfo.GetFiles()) 
     { 
      string fileName = file.Name; 
      foreach (PictureBox PB in ContentItems) 
      { 
       if (fileName == PB.Name) 
       { 
        //Get Image 
        ContentImg.Images.Add(PB.Image); 

        item = new ListViewItem(file.Name, CurrentImg); 
        subItems = new ListViewItem.ListViewSubItem[] 
       { new ListViewItem.ListViewSubItem(item, "File"), 
       new ListViewItem.ListViewSubItem(item, 
        file.LastAccessTime.ToShortDateString())}; 

        item.SubItems.AddRange(subItems); 
        FileList.Items.Add(item); 
        CurrentImg += 1; 
       } 
      } 
     }