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

[C#] ImageList 채우기 및 ListView 와 연동하기 (Stream, ListViewItem)

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

이미지는 웹 iis 쪽에 있으며 그 이미지를 ImageList에 Form_Load() 시에 추가하고 Listview에 연결한 후에 item을 추가 한 코드 예제 입니다.

string[] filepathlist =
{
"http://localhost:8888/_01.gif",
"http://localhost:8888/_01.gif",
"http://localhost:8888/_02.gif",
"http://localhost:8888/_03.gif",
};

int count = 0; // Item 이름을 위한 임시 변수
foreach (string path in filepathlist)
{
    // WebClient 를 사용해서 원격 이미지를 로드 하고 Stream에 Write 한다.
    WebClient client = new WebClient();
    byte[] myDataBuffer = client.DownloadData(path);
    Stream stream = new MemoryStream();
    stream.Write(myDataBuffer, 0, myDataBuffer.Length);

    // Bitmap에 Stream을 입력 하고 ImageList에 등록한다.
    Bitmap bmp = new Bitmap(stream);
    this.imageList1.Images.Add(bmp);
    int idx = this.imageList1.Images.Keys.Count - 1;
    this.imageList1.Images.SetKeyName(idx, "");

    // ListViewItem에 값을 채우고 ListView에 추가 한다.
    ListViewItem listviewitem = new ListViewItem("test" + count.ToString(), idx);
    this.listView1.Items.Add(listviewitem);

    count++;
}