具有DataGridView的C#表单,第一列是DataGridViewImageColumn。在表单构造函数中,向DataGridView添加行,第一个参数是从文件读取的Bitmap对象。DataGridView显示正确,没有问题。
Bitmap blackCamera = null;
Bitmap grayCamera = null;
public FormConstructor()
{
...
blackCamera = new Bitmap(@"BlackCamera.bmp");
grayCamera = new Bitmap(@"GrayCamera.bmp");
...
int row = dataGridView_xxx.Rows.Add(blackCamera); // works fine
...
dataGridView_xxx.Rows[n].Cells[0].Value = grayCamera; // works fine
...
}稍后,希望更改某些行的第一个列单元格的图像。在鼠标函数的回调中,如果试图分配DataGridViewImageColumn单元格值,我会得到异常"unable to cast object of type System.Drawing.Bitmap to type System.String“,但图像确实会更改为所需的新位图。例如:
private void MouseCallback(Object sender, EventArgs e)
{
...
dataGridView_xxx.Rows[nnn].Cells[0].Value = blackCamera; // changes image color but triggers exception
...
}微软文档似乎支持如上所述的DataGridViewImageColumn单元格值赋值。奇怪的是,它在构造函数中没有异常地工作,但在回调中有异常。如何消除异常?
发布于 2018-01-17 23:08:35
问题解决了。请看我上面的最后一条评论。
https://stackoverflow.com/questions/48287836
复制相似问题