Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#当imageList绑定到ListView时,imageList第一个图像不显示_C#_Listview_C# 4.0_Imagelist - Fatal编程技术网

c#当imageList绑定到ListView时,imageList第一个图像不显示

c#当imageList绑定到ListView时,imageList第一个图像不显示,c#,listview,c#-4.0,imagelist,C#,Listview,C# 4.0,Imagelist,一、 我使用Listview控制器绑定imageList项目和imageList图像,并通过while循环添加。使用dataReader()。问题在于添加两个项目后,Listview项目显示正确,但第一个图像未显示表示从2ndListview项目开始的图像。我用调试模式检查了每件事。然后我把imagelist弄糊涂了,因为它第一次运行时将COUNT显示为1,然后下一次循环时它的COUNT变为0,下一次它1,2,3,4,5,6。。。。等等 private void populate(MySqlDa

一、 我使用
Listview
控制器绑定
imageList
项目和
imageList
图像,并通过while循环添加。使用
dataReader()。
问题在于添加两个项目后,Listview项目显示正确,但第一个图像未显示表示从
2nd
Listview项目开始的图像。我用调试模式检查了每件事。然后我把
imagelist
弄糊涂了,因为它第一次运行时将
COUNT
显示为
1
,然后下一次循环时它的
COUNT
变为
0
,下一次它
1,2,3,4,5,6
。。。。等等

private void populate(MySqlDataReader data)
        {
            //ImageList
            ImageList imgList = new ImageList();

            //set listview category items as Large icons
            listView_Category.View = View.LargeIcon;
            imgList.Images.Clear();

            //ADD image list into Listview
            listView_Category.LargeImageList = imgList;

            Application.DoEvents();

            int i = 0;
            while (data.Read())
            {
                try
                {
                    imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/" + data.GetString(2)));
                }
                catch (Exception w)
                {
                    MessageBox.Show(w.Message);
                }

                imgList.ImageSize = new Size(100, 100);
                imgList.ColorDepth = ColorDepth.Depth32Bit;

                listView_Category.Items.Add(data.GetString(1), i);
                i++;

            }
        }
我尝试手动添加图像也。。。当它不工作时。只是通过循环添加图像。这是语言错误吗

//imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-1.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-2.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-3.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-4.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-5.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-6.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-7.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-8.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-9.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-10.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-11.jpg"));
            //imgList.Images.Add(Image.FromFile(@"./" + populateFolder + "/image-12.jpg"));

数据库


请尝试此代码,它将从文件夹中读取所有文件,并在列表视图中添加和显示。您只需要更改从DB读取它的逻辑

    private void Form1_Load(object sender, EventArgs e)
    {
        var folderPath = @"c:\images\";
        DirectoryInfo dir = new DirectoryInfo(folderPath);

        var imageList = new ImageList();
        foreach (FileInfo file in dir.GetFiles())
        {
            try
            {
               imageList.Images.Add(Image.FromFile(file.FullName));
            }
            catch{
                Console.WriteLine("This is not an image file");
            }
        }
        this.listView1.View = View.LargeIcon;
        imageList.ImageSize = new Size(128, 128);
        this.listView1.LargeImageList = imageList;

        for (int j = 0; j < imageList.Images.Count; j++)
        {
            ListViewItem item = new ListViewItem();
            item.ImageIndex = j;
            this.listView1.Items.Add(item);
        }
    }
private void Form1\u加载(对象发送方,事件参数e)
{
var folderPath=@“c:\images\”;
DirectoryInfo dir=新的DirectoryInfo(folderPath);
var imageList=新的imageList();
foreach(dir.GetFiles()中的FileInfo文件)
{
尝试
{
imageList.Images.Add(Image.FromFile(file.FullName));
}
抓住{
WriteLine(“这不是图像文件”);
}
}
this.listView1.View=View.LargeIcon;
imageList.ImageSize=新大小(128128);
this.listView1.LargeImageList=imageList;
对于(int j=0;j
并且您确定image1和tweleve位于同名和文件类型相同的文件夹中是的,它们都正确。这是windows窗体应用程序还是wpf?windows窗体应用程序。好的,让我试试……不显示任何内容!。。。但imglist count=12。@user3722956是否将listview1更改为listView\u类别。我用过我的名字,请查查名字是否正确,是否很奇怪。我在本地应用程序上测试了4幅图像,效果很好。你能在更改后更新你使用的代码吗it@user3722956如果你能在谷歌硬盘上分享你的代码,我可以查一查。。我会把它寄出去