2012-04-19 8 views
2

アイコンをリストビューに読み込む際に問題が発生しました。私は大きな視点で作業するように画像を得ることができますが、詳細ではなく、私が間違っていることをはっきりと確認することはできません。ViewListを使用してImageListでListViewを埋め込む

private void CreateList() 
{ 
    listView1.View = View.Details; 

    listView1.Columns.Add("Icon", -2, HorizontalAlignment.Center); 

    listView1.Columns.Add("Name", -2, HorizontalAlignment.Left); 

    imageList1.ImageSize = new Size(32, 32); 

    for (int i = 0; i < subKeys.Length; i++) 
    { 
     if (subKeys[i].Contains("App")) 
     { 
      imagePath = subKeys[i]; 

      if (System.IO.File.Exists(imagePath)) 
      { 
       imageList1.Images.Add(Image.FromFile(imagePath)); 
      } 

      numberOfImages++; 
     } 
    } 

    listView1.StateImageList = this.imageList1; 
} 

答えて

5

変更

listView1.StateImageList = this.imageList1; 

listView1.SmallImageList = this.imageList1; 

し、あなたがImageIndex、またはImageKeyそれぞれのListItemのプロパティを設定していることを確認してください。

listItem.ImageIndex = 0; // or, 
listItem.ImageKey = "myImage"; 
+0

ああ私のために動作しません:(しかし、 :P – cheeseman

+0

イメージキー/インデックス、更新された回答を設定していることを確認してください。 –

+0

優秀、ありがとう!私のforメソッドのコメントを外さなければなりませんでした。 – cheeseman

0

このコードを試してみてください。

 DirectoryInfo dir = new DirectoryInfo(@"c:\myPicutures"); //change and get your folder 
     foreach (FileInfo file in dir.GetFiles()) 
     { 
      try 
      { 
       this.imageList1.Images.Add(Image.FromFile(file.FullName)); 
      } 
      catch{ 
       Console.WriteLine("This is not an image file"); 
      } 
     } 
     this.listView1.View = View.LargeIcon; 
     this.imageList1.ImageSize = new Size(32, 32); 
     this.listView1.LargeImageList = this.imageList1; 
     //or 
     //this.listView1.View = View.SmallIcon; 
     //this.listView1.SmallImageList = this.imageList1; 

     for (int j = 0; j < this.imageList1.Images.Count; j++) 
     { 
      ListViewItem item = new ListViewItem(); 
      item.ImageIndex = j; 
      this.listView1.Items.Add(item); 
     } 

あなたも、2番目の列を追加し、ファイル名を "追加" することができます。

+0

文字列配列は、パスの特定のリストが含まれているので、私はそのようにディレクトリを使用することができなかった:Pは、あなたの方法の他の部分との問題は、私はlistView.View = View.Detailのためにこれを必要です。また、私は同様の問題を検索するときstackoverflowで投稿したコードを見たと思う、おそらくあなたがそれを得た場所を参照する必要があります:P – cheeseman

関連する問題