Я создаю приложение, которое отображает некоторые сообщения и их направления в DataGridView. Я хотел бы заменить содержимое некоторых столбцов картинками. Например, я хотел бы заменить номер 0, который представляет входящий вызов, зеленой стрелкой (какое-то изображение .jpg).
Кто-нибудь знает, как этого можно было добиться?
Спасибо!





GridViews могут использовать поле изображения, а не поле с привязкой к данным. Похоже, это поможет.
Посмотрите на создание настраиваемого datagridviewCell, datagridviewColumn и / или dataGridViewEditingControl.
Мы сохранили изображения в файле ресурсов как файлы BMP. Затем мы обрабатываем событие CellFormatting в DataGridView следующим образом:
private void messageInfoDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
// Is this the correct column? (It's actually a DataGridViewImageColumn)
if (messageInfoDataGridView.Columns[e.ColumnIndex] == messageSeverityDataGridViewTextBoxColumn)
{
// Get the row we're formatting
DataGridViewRow row = messageInfoDataGridView.Rows[e.RowIndex];
// Get the enum from the row.
MessageSeverity severity = ((MessageInfo)row.DataBoundItem).MessageSeverity;
Bitmap cellValueImage;
// Map the enumerated type to an image...
// SeverityImageMap is a Dictionary<MessageSeverity,Bitmap>.
if (ReferenceTables.SeverityImageMap.ContainsKey(severity))
cellValueImage = ReferenceTables.SeverityImageMap[severity];
else
cellValueImage = Resources.NoAction;
// Set the event args.
e.Value = cellValueImage;
e.FormattingApplied = true;
}
}