winfrom 图片列表

1.winform利用ImageList控件和ListView控件组合制作图片文件浏览器,见图,比较简单,实现LISTVIEW显示文件夹图片功能。

2.定义全局变量

List<string> imageLists = new List<string>();

3.

需要在窗体增加imageList和listview控件,并把ListView控件的LargeImageList设置为imageList1

  ListView控件显示图片的大小可以在imageList1控件中调整ImageSize属性,如果图片失真,可以设置imageList1控件的ColorDepth值为Depth32Bit.

4.窗体的加载事件

private void Form1_Load(object sender, EventArgs e)
        {
            imageList1.Images.Clear();
            listView1.Items.Clear();
            imageLists.Clear();
            //刷新Listview
            bindListView();
        }

5.方法

//下面是方法
        private void bindListView()
        {
            DirectoryInfo dir = new DirectoryInfo("E:\\bg\\");

            string[] files = new string[100];

            string ext = "";

            foreach (FileInfo d in dir.GetFiles())
            {
                ext = System.IO.Path.GetExtension("E:\\bg\\" + d.Name);
                if (ext == ".jpg" || ext == ".jpeg") //在此只显示Jpg
                {
                    imageLists.Add("E:\\bg\\" + d.Name);
                }
            }
            for (int i = 0; i < imageLists.Count; i++)
            {
                imageList1.Images.Add(System.Drawing.Image.FromFile(imageLists[i].ToString()));
                listView1.Items.Add(System.IO.Path.GetFileName(imageLists[i].ToString()), i);
                listView1.Items[i].ImageIndex = i;
                listView1.Items[i].Name = imageLists[i].ToString();
            }
        }

6.结果

7.给listView1控件添加单击事件,获取当前选中图片在imageLists中的下标。

 private void listView1_MouseClick_1(object sender, MouseEventArgs e)
        {
            MessageBox.Show(this.listView1.SelectedItems[0].Index.ToString());
        }

8.之后可以添加自己的一些想实现的逻辑了。

posted @ 2021-04-29 15:50  饮木  阅读(1155)  评论(0编辑  收藏  举报