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”而不是图像。
更新我!
答案 0 :(得分: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 :(得分:0)
如果图片将位于特定列中,请将该列的列类型从DataGridViewTextBoxColumn
更改为DateGridViewImageColumn
。然后从资源或文件夹加载图像。但如果没有图像,它将显示带有“X”的矩形。因此,请确保将图像添加为null。
但如果列未修复,则可以使用CellPainting
事件。