Search code examples
c#imagewinformslistviewyoutube-api

trying to insert images to items in listview


I want to show music items to user with thumbnail image and title of music but it doesn't work as I intended. I have same code with different list and it worked there, but somehow it doesn't work on this code.

code doesn't work:

            form1.playlist_music_list.Items.Clear();
            form1.playlist_music_list.Columns.Add(" ", 400);
            form1.playlist_music_list.View = View.Details;
            ImageList thumbnailImageList = new ImageList();
            thumbnailImageList.ImageSize = new Size(180, 101);
            
            foreach (var musicItem in musicitemstoadd)
            {
                thumbnailImageList.Images.Add(musicItem.Image);
                
                ListViewItem item = new ListViewItem(musicItem.Title);
                item.ImageIndex = thumbnailImageList.Images.Count-1;
                item.Tag = musicItem.VideoId;

                form1.playlist_music_list.Items.Add(item);
            }

(there is no problem with musicitemstoadd and image. (added musicitemstoadd as a parameter for working method below. ex) internal_playlist(musicitemstoadd, video_id))(Also checked if images are properly added by using picturebox, and it showed well)

code that works:

    internal async void internal_playlist(List<Playlist_Music_Items> playlist, String sel_videoid)
    {
        form1.Inplay_playlist.Clear();
        form1.Inplay_playlist.Columns.Add(" ",400);

        form1.Inplay_playlist.View = View.Details;

        ImageList thumbnailImageList = new ImageList();
        thumbnailImageList.ImageSize = new Size(180, 101);

        foreach (var musicItem in playlist)
        {
            thumbnailImageList.Images.Add(musicItem.Image);

            ListViewItem item = new ListViewItem(musicItem.Title);
            item.ImageIndex = thumbnailImageList.Images.Count - 1; 

            form1.Inplay_playlist.Items.Add(item);
        }

        form1.Inplay_playlist.SmallImageList = thumbnailImageList;

    }

I've checked all component(title, image, id, etc) working well. But it shows only title, not the image as I expected to be.


Solution

  • I forgot to set imagelist form1.playlist_music_list.SmallImageList = thumbnailImageList;