показать изображение в конкретной ячейке datagridview c # - PullRequest
1 голос
/ 24 января 2012
         string fileName = "C:\\Users\\Shahid\\Pictures\\Picasa\\word.gif";
        FileInfo fileInfo = new FileInfo(fileName);

        byte[] binaryData = File.ReadAllBytes(fileName);  
        MemoryStream ms = new MemoryStream(binaryData);
        Image returnImage = Image.FromStream(ms, false, true);
        dataGridView1.Rows[i].Cells[2].Value = returnImage;
        dataGridView1.Rows[i].Cells[2].ToolTipText = fileInfo.ToString();

это показывает "System.Drawing.Bitmap" в моем DataGridViewCell вместо изображения.

обнови меня!

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Чтобы отобразить изображение, вы должны использовать столбец DataGridViewImageColumn .Вы также можете использовать событие CellPainting, чтобы нарисовать / нарисовать изображение / рисунок на каждой или конкретной ячейке.

 private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
 {
   if (e.RowIndex==1 && e.ColumnIndex==1)
   {
    using (Image img = Image.FromFile(@"c:\file\file.gif"))
     {
       e.Graphics.DrawImage(img, e.CellBounds.Left, e.CellBounds.Top - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1);

       e.PaintContent(e.ClipBounds);
       e.Handled = true;
      }
    }
 }
0 голосов
/ 15 декабря 2014

Если изображения будут в определенном столбце, измените тип столбца этого столбца с DataGridViewTextBoxColumn на DateGridViewImageColumn. Затем загрузите изображение из ресурса или папки. Но если изображение отсутствует, оно будет показывать прямоугольник с символом «X». Поэтому обязательно добавьте изображение для нуля.

Но если столбцы не зафиксированы, вы можете использовать CellPainting Событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...