首页 > 解决方案 > 图像未显示在 C# 的列表视图中

问题描述

我正在开发 Winforms,我在数据库中保存图像路径,然后检索路径并将其提供给 Imagelist。Image 列表中的图像用于 ImageView。但图像未显示,其路径正确显示但图像未显示。

public void yourvideos(string user, ImageList imageList, ListView lv, Label l,TextBox s)
        {
            cmd = new SqlCommand("select Title,Thumbnail from RecipeInfo where Username=@username", con);
            cmd.Parameters.AddWithValue("@username", user);
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                int count = 0;
                while (reader.Read())
                {
                    s.Text = reader[1].ToString();
                    imageList.ImageSize = new Size(100, 100);
                    imageList.Images.Add("key"+count,Image.FromFile($@"{reader[1]}"));
                   
                    var listviewitem = lv.Items.Add(reader[0].ToString(), count);
                    
                    listviewitem.ImageKey = "key" + count;
                  count++;
                }
                

                
            }
            else
            {

                l.Visible = true;
                l.Text = "Upload videos and share your recipes with others";
            }
            reader.Close();
            con.Close();
        }

标签: c#winformslistviewimagelist

解决方案


这个问题我用的时候也出现过,我keyIndex.
你可以参考我的代码:</p>

public Form1()
    {
        InitializeComponent();                
        this.listView1.View = View.LargeIcon;
       yourvideos(this.imageList1,this.listView1);
    }
    public void yourvideos( ImageList imageList1, ListView listView1)
    {
        string sql = "...";
        SqlConnection con = new SqlConnection(sql);
        SqlCommand cmd = new SqlCommand("select Title,Thumbnail from RecipeInfo", con);
        con.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        int i = 0;
        if (reader.HasRows)
        {
            while (reader.Read())
            {
                string title = reader["Title"].ToString();
                string picurl = reader["Thumbnail"].ToString();
                imageList1.ImageSize = new Size(60, 60);
                imageList1.Images.Add(Image.FromFile(picurl));
                ListViewItem item = new ListViewItem();
                item.Text = Convert.ToString(title);
                listView1.Items.Add(item);
                item.ImageIndex = i;
                i++;

            }
        }
        listView1.LargeImageList = imageList1;
        reader.Close();
        con.Close();

    }
       

结果:

在此处输入图像描述


推荐阅读