zoukankan      html  css  js  c++  java
  • 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:UsersleiminghuiDesktop朝夕教育训练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;
                        }
                    }
                }
    

      

  • 相关阅读:
    HDOJ:1051
    新sort的用法
    python课堂整理14---函数式编程
    python课堂整理13---函数的作用域及匿名函数
    python课堂整理12---递归
    python课堂整理11---函数即变量
    python课堂整理10---局部变量与全局变量
    python课堂整理9---函数1
    python课堂整理8---字符串格式化
    python课堂整理7---集合
  • 原文地址:https://www.cnblogs.com/leiminghui/p/13561803.html
Copyright © 2011-2022 走看看