【问题标题】:C# - Image From Datagrid view to picture boxC# - 从 Datagridview 到图片框的图像
【发布时间】:2016-05-02 10:55:45
【问题描述】:

我有一个带有列类型图像的数据网格视图。我想从数据网格中获取值到我正在使用的图片框。这是我在 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[]'.

提前谢谢你!

【问题讨论】:

  • 该单元格的值已经是位图,因此无需将它们转换为 byte[],如果需要,只需将其转换为 Image。
  • 什么意思?请以代码格式创建您的答案,以便我可以尝试测试它:)
  • pb_productImage.Image = (Image)(((Bitmap)dgv_salesquotesummary.Rows[e.RowIndex].Cells[7].Value).Clone())
  • 先生,感谢您现在的工作。请将您的答案放在“答案”框中,以便我将其标记为“已回答”,非常感谢先生!

标签: c# datagrid


【解决方案1】:

错误消息显示将位图转换为字节 [] 失败。这意味着单元格值是 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())

【讨论】:

  • 非常有帮助!上帝保佑你先生! + :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多