DataGridViewImageColumn вызывает исключение при назначении значения ячейки

Имейте форму C# с DataGridView с первым столбцом, являющимся 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, я получаю исключение "невозможно привести объект типа System.Drawing.Bitmap к типу System.String", но изображение действительно изменится на желаемое новое растровое изображение. Например:

private void MouseCallback(Object sender, EventArgs e)
{
    ...
    dataGridView_xxx.Rows[nnn].Cells[0].Value = blackCamera; // changes image color but triggers exception
    ...
}

Документация Microsoft, кажется, поддерживает назначение значения ячейки DataGridViewImageColumn, как указано выше. Любопытно, что это работает без исключения в конструкторе, но работает с исключением в обратном вызове. Как устранить исключение?

1 ответ

Задача решена. Смотрите мой последний комментарий выше.

Другие вопросы по тегам