2017-01-27 2 views
0

을 표시하지 않습니다. dataReader().과 함께 두 항목을 추가 한 후에 문제가 발생하면 목록보기 항목에 올바른 내용이 표시되지만 첫 번째 이미지가 표시되지 않음은 2nd 목록보기 항목에서 시작하는 이미지를 의미합니다. 디버깅 모드로 모든 것을 검사했습니다. 1 시간 그것이 COUNT1로 다음 루프 다시는 COUNT0 된 것 보여주고 실행 등 다음 번 1,2,3,4,5,6 ....C#을 이미지리스트 목록보기로 바인드, 이미지리스트 1 이미지 나는 모두 <code>Listview</code> 항목과 <code>Imagelist</code> 이미지 while 루프를 통해 추가 <code>imageList</code>와 <code>Listview</code> 컨트롤러 바인드 데

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++; 

      } 
     } 

내가 수동으로 이미지를 추가하려고 할 때 때문에 그때, imagelist에 혼란 또한 ... 작동하지 않을 때. 그것만이 루프를 통해 이미지를 추가합니다. 언어 버그인가?

enter image description here

enter image description here

//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")); 
데이터베이스

enter image description here

+0

당신은 네 그들은 모두 –

+0

image1에와 tweleve이 같은 이름 및 파일 유형과 폴더에 있는지 확인입니까? – user3722956

+0

이 윈도우 폼 응용 프로그램 또는 WPF이다 올바른지 –

답변

1

목록보기에 표시하여 폴더의 모든 파일을 RAD하고 추가 할 것이이이 코드를 시도하십시오. 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); 
     } 
    } 
+0

아무 것도 표시하지 않지만 ... imglist count = 12 – user3722956

+0

@ user3722956 listview1을 listView_Category로 변경 했습니까? 이름이 정확하다면 나는 내 이름을 chaeck으로 사용했습니다. –

+0

예. 이미지 만 누락되었습니다. – user3722956