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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM