2012-01-24 22 views
1
  string fileName = "C:\\Users\\Shahid\\Pictures\\Picasa\\word.gif"; 
     FileInfo fileInfo = new FileInfo(fileName); 

     byte[] binaryData = File.ReadAllBytes(fileName); 
     MemoryStream ms = new MemoryStream(binaryData); 
     Image returnImage = Image.FromStream(ms, false, true); 
     dataGridView1.Rows[i].Cells[2].Value = returnImage; 
     dataGridView1.Rows[i].Cells[2].ToolTipText = fileInfo.ToString(); 

このショー "System.Drawing.Bitmap"は、ImageではなくDataGridViewCellに表示されます。特定のセルの画像を表示するデータグリッドビューC#

私を更新してください!

+0

IconColumnをCells [2] Valueに割り当てないでください。これはリンク先の例を参照してください。 –

答えて

3

イメージをレンダリングするには、DataGridViewImageColumnカラムを使用する必要があります。 CellPaintingイベントを使用して、各セルまたは特定のセルに画像/描画を描画/ペイントすることもできます。

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) 
{ 
    if (e.RowIndex==1 && e.ColumnIndex==1) 
    { 
    using (Image img = Image.FromFile(@"c:\file\file.gif")) 
    { 
     e.Graphics.DrawImage(img, e.CellBounds.Left, e.CellBounds.Top - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1); 

     e.PaintContent(e.ClipBounds); 
     e.Handled = true; 
     } 
    } 
} 
+1

@Downvoter - コメントを追加してください。 – adatapost

+0

編集済みの記事を参照してください。 – adatapost

0

画像がDataGridViewTextBoxColumnからDateGridViewImageColumnに、その列の列タイプを変更するには、特定の列であることを行っている場合。次に、リソースまたはフォルダーからイメージをロードします。しかし、画像がない場合は、その中に「X」の長方形が表示されます。だからnullの画像を追加してください。

ただし、列が固定されていない場合は、CellPaintingイベントを使用できます。

関連する問題