Voy a explicar como solucionar el problema de los iconos o imágenes en una columna de un datagridview que hemos añadido en el diseño del formulario.
Os dejo una imagen, de 32x32p., con el código, como podéis ver es bien simple.
Aquí tenéis el código, para los que no os gusta teclear, copy/paste :)
Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
' En la tercera columna añado el icono edit.ico con
If e.ColumnIndex = 3 AndAlso e.RowIndex >= 0 Then
e.Paint(e.CellBounds, DataGridViewPaintParts.All)
Dim celBoton As DataGridViewButtonCell = TryCast(Me.DataGridView1.Rows(e.RowIndex).Cells(3), DataGridViewButtonCell)
Dim icoAtomico As New Icon(Environment.CurrentDirectory + "\edit.ico")
e.Graphics.DrawIcon(icoAtomico, e.CellBounds.Left + 3, e.CellBounds.Top + 3)
Me.DataGridView1.Rows(e.RowIndex).Height = icoAtomico.Height + 10
Me.DataGridView1.Columns(e.ColumnIndex).Width = icoAtomico.Width + 10
Me.DataGridView1.Rows(e.RowIndex).Cells(3).ToolTipText = "Editar cliente"
e.Handled = True
End If
End Sub
En el evento CellPainting del datagridview añadimos el código de arriba y el resultado es este:
Espero que os sea útil.