C# - 图像从Datagrid视图到图片框

时间:2016-05-02 02:10:31

标签: c# datagrid

我有一个带有列类型图像的数据网格视图。我想从datagrid获取我正在使用的图片框的值。这是我的CellClick

中的代码
byte[] image = (byte[])dgv_salesquotesummary.Rows[e.RowIndex].Cells[7].Value;
MemoryStream ms = new MemoryStream(image);
pb_productImage.Image = Image.FromStream(ms);

我收到了

这个错误
Additional information: Unable to cast object of type 'System.Drawing.Bitmap' to type 'System.Byte[]'.

提前谢谢!

1 个答案:

答案 0 :(得分:2)

错误消息显示将Bitmap转换为byte []时失败。这意味着单元格值是Bitmap,它派生自Image。在简单类型中,通常可以像这样立即使用它:

pb_productImage.Image = (Image) dgv_salesquotesummary.Rows[e.RowIndex].Cells[7].Value

但是,由于在这种情况下,您的数据网格可以随时处理图像,因此首先克隆图像是谨慎的,例如:

pb_productImage.Image = (Image)(((Bitmap)dgv_salesquotesummary.Rows[e.RowIndex].Cells[7].Value).Clone())