C# 没有图像列表的Listview?

C# 没有图像列表的Listview?,c#,image,list,listview,picturebox,C#,Image,List,Listview,Picturebox,我又一次遇到了一个我似乎无法想出解决办法的问题。在这里,我有一个显示图像文件目录的列表视图,我希望列表视图为这些文件显示这些图像,问题是我还需要程序在每像素级别修改图像,所以我在一个单独的线程上完成这项工作,所以我想做的是获取我已经存在的修改图像的PictureBox列表,并将文件名与相应的图像匹配。有什么办法吗 这是我到目前为止所拥有的 public static List<PictureBox> ContentItems = new List<PictureBox>(

我又一次遇到了一个我似乎无法想出解决办法的问题。在这里,我有一个显示图像文件目录的列表视图,我希望列表视图为这些文件显示这些图像,问题是我还需要程序在每像素级别修改图像,所以我在一个单独的线程上完成这项工作,所以我想做的是获取我已经存在的修改图像的PictureBox列表,并将文件名与相应的图像匹配。有什么办法吗

这是我到目前为止所拥有的

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);
    }
公共静态列表ContentItems=new List();
...
公共静态字符串ContentDirectory=“”;
私有void FileTree\u NodeMouseClick(对象发送方,TreeNodeMouseClickEventArgs e)
{
TreeNode newSelected=e.节点;
FileList.Items.Clear();
DirectoryInfo nodeDirInfo=(DirectoryInfo)newSelected.Tag;
ListViewItem.ListViewSubItem[]子项;
ListViewItem=null;
foreach(nodeDirInfo.GetFiles()中的FileInfo文件)
{
item=新的ListViewItem(file.Name);
子项=新建ListViewItem.ListViewSubItem[]
{新建ListViewItem.ListViewSubItem(项,“文件”),
新建ListViewItem.ListViewSubItem(项,
文件.LastAccessTime.ToShortDateString())};
item.SubItems.AddRange(子项);
FileList.Items.Add(item);
}
FileList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}

我确实需要使用图像列表,毕竟我是如何让它工作的:

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

我确实需要使用一个图像列表,毕竟我是这样做的:

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

到目前为止,您在尝试的过程中遇到了哪些具体问题?我不知道下一步该怎么办,我已经设置了listview,并且我已经准备好了要编辑的图像并将其放入picturebox列表中,但是我不知道如何将文件与正确的图像进行匹配。您是否正在寻找一种方法来将您的
ListViewItem
ContentItems
中的图像进行匹配,或者将
ContentItems
中的图像显示为
ListViewItem
图标,或者两者都显示
PictureBox
s不能像
ListViewItem
图标那样正常工作。我想将listview中的文件与ContentItems中编辑的图像进行匹配,我可以将其更改为图像列表,但这并不难。到目前为止,您的尝试遇到了哪些具体问题?我不知道下一步该怎么办,我有listview设置,我有需要编辑的图像并将其放入picturebox列表中,但我不知道如何将文件与正确的图像匹配。您是否正在寻找将您的
ListViewItem
ContentItems
中的图像匹配的方法,一种将
ContentItems
中的图像显示为
ListViewItem
图标的方法,或者两者都显示
PictureBox
s不能像
ListViewItem
图标那样正常工作。我想将listview中的文件与ContentItems中编辑的图像进行匹配,我可以将其更改为图像列表,这并不难做到。