2012-01-24 83 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(); 

這將在我的DataGridViewCell中顯示「System.Drawing.Bitmap」而不是圖像。在特定單元格中顯示圖像datagridview c#

更新我!

+0

請勿將iconColumn指定給Cells [2]值,它的工作方式不同,請參閱以下鏈接中的示例... –

回答

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事件。

相關問題