2008-11-04 2 views
0

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

Кто-нибудь знает, как это можно достичь?

Спасибо!

ответ

1

Мы сохранили изображения в файле ресурсов в виде файлов 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; 
     } 
    } 
0

GridViews имеют возможность использовать поле изображения в отличие от поля, связанного с данными. Похоже, это будет трюк.

0

Посмотрите на создание настраиваемого datagridviewCell datagridviewColumn и/или dataGridViewEditingControl.