代码改变世界

winform下根据指定路径listview根据图片多少自动生成动态生成

2014-04-17 13:51  95胖子  阅读(392)  评论(0)    收藏  举报

//动态绑定图片(指定图片路径)
            try
            {
                //ImageList控件别名:imgListPhoto
                //Listview控件别名:lvAbbreviatedImage
                List<string> tifNames = new List<string>();

      //需要编译的图片路径
                string path = @"E:\图片";
                //文件路径
                DirectoryInfo TheFolder = new DirectoryInfo(path); 
                imgListPhoto.Images.Clear();
                //遍历文件夹
                for (int i = 0; i < TheFolder.GetFiles().Length; i++)             
                {
                    //或者jpg,png 文件大小要大于0且是图片文件
                    if (TheFolder.GetFiles()[i].Length > 0 && TheFolder.GetFiles()[i].Extension == ".jpg")                             
                    {
                        //获取文件
                        Image image = Image.FromFile(TheFolder.GetFiles()[i].DirectoryName + "\\" + TheFolder.GetFiles()[i].Name);
                        //添加文件名                 
                        tifNames.Add(TheFolder.GetFiles()[i].Name);
                        //添加图片
                        imgListPhoto.Images.Add(image);   
                    }
                }
                //初始化设置     
                this.lvAbbreviatedImage.View = View.LargeIcon;
                this.lvAbbreviatedImage.LargeImageList = this.imgListPhoto;

                //开始绑定           
                this.lvAbbreviatedImage.BeginUpdate();
                this.lvAbbreviatedImage.Items.Clear();
                ListViewItem items = new ListViewItem();
                items.SubItems.Clear();
                for (int i = 0; i < tifNames.Count; i++)
                {
                    ListViewItem lvi = new ListViewItem();
                    lvi.ImageIndex = i;
                    lvi.Text = tifNames[i];
                    this.lvAbbreviatedImage.Items.Add(lvi);
                    Thread.Sleep(200);
                }
                this.lvAbbreviatedImage.EndUpdate();
            }
            catch (Exception ex)
            {
                //MessageBox.Show("Error");
                throw new Exception(ex.Message);
            }