2011-10-25 12 views
0

私はdataGridViewにいくつかの画像を表示したいので、デフォルト画像(Properties.Resources.test)でDataGridViewImageColumnを作成し、それをdataGridViewに追加し、いくつかの値をセルに挿入しようとしました。残念ながら、それは表示を変更しませんでした。私は間違って何をしていますか?DataGridViewImageColumnに値が表示されません - なぜですか?

あなたはこのように行うことができます
 var q = from a in _dc.GetTable<Map>() select a; 
     View.dataGridView1.DataSource = q; 
     View.dataGridView1.Columns[3].Visible = false; 

     var imageColumn = new DataGridViewImageColumn 
     { 
      Image = Properties.Resources.test, 
      ImageLayout = DataGridViewImageCellLayout.Stretch, 
      Name = "Map", 
      HeaderText = @"map" 
     }; 
     View.dataGridView1.Columns.Add(imageColumn); 

     var i = 0; 
     foreach (var map in q) 
     { 
      View.dataGridView1.Rows[i].Cells[8].Value = ByteArrayToImage(map.map1.ToArray()); 
      i++; 
     } 
+1

可能な複製[データグリッドビューwinformsでイメージを変更できません](http://stackoverflow.com/questions/6473310/cannot-change-image-in-datagridview-winforms) –

+0

本当にありがとう – rebeliagamer

答えて

1

としては、あなたがそうのようなCellFormattingイベントを使用する必要があるコメントに問題の説明:

void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{    
    if (dataGridView1.Columns[e.ColumnIndex].Name == "StatusImage") 
    { 
     // Your code would go here - below is just the code I used to test 
     e.Value = Image.FromFile(@"C:\Pictures\TestImage.jpg"); 
    } 
} 

だから、セットE .Valueではなくcell.Valueを指定してイメージを割り当てます。

0

...

for(int i = 0; i < dataGridView1.Columns.Count; i ++) 
      if(dataGridView1.Columns[i] is DataGridViewImageColumn) { 
       ((DataGridViewImageColumn)dataGridView1.Columns[i]).ImageLayout = DataGridViewImageCellLayout.Stretch; 
       break; 
      } 
関連する問題