日期:2014-05-18  浏览次数:20891 次

listview 和Imagelist一起使用显示图片的问题
C# code

string pathstr = null;
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string str = comboBox1.Text;            
            switch (str)
            {
                case "图片":
                    pathstr = Directory.GetCurrentDirectory() + @"\wulin";
                    break;
                case "背景":
                    pathstr = Directory.GetCurrentDirectory() + @"\beijing";
                    break;
                default:
                    pathstr = Directory.GetCurrentDirectory() + @"\default";
                    break;
            }          
        }
imageList1.ColorDepth = ColorDepth.Depth32Bit;
            imageList1.ImageSize = new Size(220, 220);
            for (int i = 0; i < 4; i++)
            {
                imageList1.Images.Add(Image.FromFile(Application.StartupPath+@"\\beijing\\" + (i + 1).ToString() + ".jpg"));
                listView1.LargeImageList = imageList1;
                listView1.Items.Add((i + 1).ToString());
                listView1.Items[i].ImageIndex = i;
            }




我想通过单击combobox中的某一项让其在ListView控件中显示相应文件夹中的图片而且这个图片要足够的大,起码可以看见图片是什么样的吧(如果只设置其View=LargeIcon属性自能显示文字,而图片却并没有显示,但是当你再次选择其他选项时,以前的图片还在那里,新加的图片在其后面显示,这样listView中图片就越来越多)所以想到用ImageList控件设置imageList1.ImageSize = new Size(220, 220);是可以显示了但发现如下问题

下面网上找到的实现Imagelist的代码
C# code

p rivate void button1_Click(object sender, EventArgs e)
        {
            imageList1.ColorDepth = ColorDepth.Depth24Bit;
            imageList1.ImageSize = new Size(120, 120);
            for (int i = 0; i < 12; i++)
            {
                imageList1.Images.Add(Image.FromFile(Application.StartupPath + "\\"+(i+1).ToString()+".jpg"));
                listView1.LargeImageList = imageList1;
                listView1.Items.Add((i+1).ToString());
                listView1.Items[i].ImageIndex = i;
            }          
        }

但是不能实现自动查找ImageList图片的个数如Imagelist1.Image.Count,而且查找文件还要指定文件名才能查找




------解决方案--------------------
mark