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.之后可以添加自己的一些想实现的逻辑了。