Winfrom之listView中显示图片(五种模式:大图标、小图标、详细信息、分组、List)

程序初始化的时候:按照大图标的格式将图片加载到 ListView 控件中
  主要代码:

           LoadImgList(); //加载图片集合的方法
            lvList.Items.Clear();
            //lvList.ShowGroups = false;//不分组显示
            if (largeList!=null&&largeList.Images.Count>0)//判断大图标中是否有图片
            {
                for (int i = 0; i < largeList.Images.Count; i++)
                {
                    string iText = largeList.Images.Keys[i];//获取largeList中的key
                    ListViewItem li = new ListViewItem();//初始化每一项
                    li.Text = iText;//获取文本
                    li.ImageIndex = i;//获取图片
                    lvList.Items.Add(li);
                }
            }
            lvList.View = View.LargeIcon;//以大图标显示
            lvList.LargeImageList = largeList;//大图标
            lvList.SmallImageList = smallList;//小图标


 Dictionary<int,string> dic = new Dictionary<int,string>();//定义字典  存储图片的名字跟索引
       
        //加载图片集合
        private void LoadImgList()
        {
            string path = @"C:\Users\leiminghui\Desktop\朝夕教育训练\picture";//图片位置
            if (Directory.Exists(path))//如果获取图片的位置字段不为空
            {
                string[] files = Directory.GetFiles(path);//获取要加载的相关图片
                if (files.Length>0)
                {
                    largeList.Images.Clear();//以防残留上次的图片 先进行清空操作
                    smallList.Images.Clear();
                    int index = 0;//定义索引
                    string[] fileType = { ".jpg", ".png" };//加载图片的相关格式
                    foreach (string fpath in files)
                    {
                        if (fileType.Contains(Path.GetExtension(fpath)))
                        {
                            Image img = Image.FromFile(fpath);//获取图片
                            string PthName= Path.GetFileNameWithoutExtension(fpath);//获取图片的名称
                            largeList.Images.Add(PthName, img);//大图标显示  PthName 图片的名称  img 图片
                            smallList.Images.Add(PthName, img);//小图标显示
                            dic.Add(index,fpath);//index 图片的索引 fpath 图片的路径  
                            index++;
                        }
                    }
                    largeList.ImageSize = new Size(75,75);//大图标显示的尺寸
                    smallList.ImageSize = new Size(20,20);//小图标显示的尺寸
                }
            }
        }

  

以大图标的形式显示

   lvList.View = View.SmallIcon;//大图标
  ListView控件名称.View=View.SmallIcon;

  

 

 

小图标显示

lvList.View = View.List;//小图标

  

 

 

Tile显示
    lvList.View = View.Tile;//Tile

  

 

 

List显示
lvList.View=View.List;

  

 

 

以详细信息显示
 lvList.Items.Clear();
            lvList.Columns.Clear(); 
            //lvList.ShowGroups = false;
            lvList.View = View.Details;//详细信息
            #region 列标头信息 添加
            lvList.Columns.Add("文件名", 100, HorizontalAlignment.Left);
            lvList.Columns.Add("修改日期", 150, HorizontalAlignment.Left);
            lvList.Columns.Add("类型", 80, HorizontalAlignment.Left);
            lvList.Columns.Add("大小", 60, HorizontalAlignment.Left);
            #endregion

            #region 项添加()
            for (int i = 0; i < dic.Count; i++)
            {
                ListViewItem li = new ListViewItem();
                li.ImageIndex = i;//获取图片的索引
                li.Text = smallList.Images.Keys[i];//获取图片的文本信息
                li.SubItems.Add(File.GetCreationTime(dic[i]).ToString());//获取文件修改的日期
                li.SubItems.Add(Path.GetExtension(dic[i]));//文件的类型
                long length = new FileInfo(dic[i]).Length;//获取文件大小  字节
                li.SubItems.Add((length / 1024).ToString());//KB
                lvList.Items.Add(li);//添加到集合中显示
            }
                lvList.GridLines = true;//显示网格
            #endregion

  

 

 

以分组显示

主要代码:

 lvList.ShowGroups = true;//显示分组
            //添加组
            lvList.Groups.Clear();//清空
            lvList.Groups.Add(new ListViewGroup("动物",HorizontalAlignment.Center));//类型  对齐方式
            lvList.Groups.Add(new ListViewGroup("人物", HorizontalAlignment.Center));//类型  对齐方式
            lvList.Groups.Add(new ListViewGroup("风景", HorizontalAlignment.Center));//类型  对齐方式
            lvList.Groups.Add(new ListViewGroup("游戏", HorizontalAlignment.Center));//类型  对齐方式
            //组名--数字
            //键值对 Dictionary
            Dictionary<string, string> dicGroup = new Dictionary<string, string>();
            dicGroup.Add("动物", "01");//文件包含 01 分为A组
            dicGroup.Add("人物", "02");
            dicGroup.Add("风景", "03");
            dicGroup.Add("游戏", "04");
            //分组
            for (int i = 0; i < lvList.Items.Count; i++)
            {
                foreach (ListViewGroup lvg in lvList.Groups)
                {
                    //文件的指定编号 是否跟组所对应的项一致
                    if(lvList.Items[i].Text.Substring(0,2)==dicGroup[lvg.Header])
                    {
                        lvList.Items[i].Group = lvg;
                        break;
                    }
                }
            }

  

 

posted @ 2020-08-25 20:18  猎人7号  阅读(5949)  评论(0编辑  收藏  举报