본문 바로가기
개발언어/C#

[C#] Winform ListView(리스트뷰) 이미지 넣기

by 창용이랑 2020. 12. 22.
728x90

오늘은 C# 윈폼에서 ListView 컨트롤에 대해서 알아보려고 합니다. 그 중에서도, 리스트뷰 컨트롤에 이미지를 넣는 방법에 대해서 설명 드리려고 합니다.

 

그럼 바로 본문으로 넘어가서 어떻게 ListView 컨트롤에 이미지를 넣는지 예제를 통해서 알려 드리도록 하겠습니다.

 

 

 

 

먼저, 아래와 같이 빈 윈폼 프로젝트를 생성해 주시고 ListView 컨트롤을 배치해 주시기 바랍니다.

 

빈 윈폼 프로젝트 생성 및 ListView 컨트롤 배치

참고로 위에서 Listview 컨트롤과 ImageList 컨트롤 2개의 컨트롤을 배치하였습니다.

 

그리고 저는 Resource에 이미지 3개를 다음과 같이 추가하였습니다.

 

Resource(리소스) 이미지 추가하기

 

이제 리소스에 추가된 이미지를 ListView에 추가하여 불러오도록 하겠습니다.

 

그럼 이제 예제코드를 작성해 보도록 하겠습니다.

 

예제 코드


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; 

namespace Test
{
    public partial class imgList_Main : Form
    {
        public imgList_Main()
        {
            InitializeComponent();

            this.Load += TestForm_Load;
        }
		
        public void TestForm_Load(object sender, EventArgs e)
        {
            GetImageListView();
        } 

        /// <summary>
        /// ListView에 Image 넣기
        /// </summary>
		
        public void GetImageListView()
        {
            this.Invoke(new MethodInvoker(delegate ()
            {
                Image image1 = Properties.Resources.숫자0; //이미지 넣기
                Image image2 = Properties.Resources.숫자1; //이미지 넣기
                Image image3 = Properties.Resources.숫자2; //이미지 넣기
 
                imgList.Images.Add(image1); //이미지리스트 컨트롤에 이미지 추가
                imgList.Images.Add(image2); //이미지리스트 컨트롤에 이미지 추가
                imgList.Images.Add(image3); //이미지리스트 컨트롤에 이미지 추가 

                imgList.ImageSize = new Size(64, 64); // 이미지 사이즈 조정
                imgList.ColorDepth = ColorDepth.Depth32Bit; 

                uiLv_Main.LargeImageList = imgList; //ListView 컨트롤에 이미지리스트 저장 

                for(int idx = 0; idx < imgList.Images.Count; idx++)
                {
                    ListViewItem item = new ListViewItem("숫자" + idx.ToString(), idx);
                    uiLv_Main.Items.Add(item);
                } 

                this.Refresh();
            }));
        }
    }
}

 

실행 결과

 

위와 같이 Listview 컨트롤에 제가 Resource에 넣어뒀던 이미지들이 알맞게 나온것을 확인하실 수 있습니다.

 

리스트뷰에 이미지를 넣는 방법은 여러가지 방법이 있겠지만,

 

저는 첫 번째로 Image 클래스 객체를 선언하여 객체에 이미지를 저장하고,

 

해당 이미지들의 객체를 ImageList 컨트롤에 저장하여 마지막으로 ListView 컨트롤 LargeImageList에 저장하여 불러오는 식으로 해서 리스트뷰 컨트롤에 이미지를 넣는 방식으로 구현하였습니다.

 

감사합니다~~