Всякий раз, когда у меня возникают вопросы о том, как сделать что-то в DataGridView, я сначала обращаюсь к часто задаваемым вопросам Microsoft.
http://www.windowsclient.net/Samples/Go%20To%20Market/DataGridView/DataGridView%20FAQ.doc
Обычно в этой ситуации я обрабатываю событие CellFormatting, чтобы установитьизображение, основанное на значении в ячейке.
Таким образом, я бы сохранял свои изображения в виде списка изображений, а затем имел код в формате CellFormatting, как показано ниже:
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgv.Columns[e.ColumnIndex].Name == "status")
{
if (e.Value != null)
{
if (e.Value.ToString() == "1")
{
e.Value = imageList1.Images[1];
}
else
{
e.Value = imageList1.Images[2];
}
}
}
}