Crear una columna de botones con imagen usando la clase DataGridViewButtonColumn
El link indicado está en C#, así que lo cambié a VB.Net
Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
Handles DataGridView1.CellPainting
If e.ColumnIndex >= 0 AndAlso DataGridView1.Columns(e.ColumnIndex).Name = "icono" _
AndAlso e.RowIndex >= 0 Then
e.Paint(e.CellBounds, DataGridViewPaintParts.All)
Dim celBoton As DataGridViewButtonCell = _
TryCast(DataGridView1.Rows(e.RowIndex).Cells("icono"), DataGridViewButtonCell)
Dim icoAtomico As New Icon(Environment.CurrentDirectory + "\icono.ico")
e.Graphics.DrawIcon(icoAtomico, e.CellBounds.Left + 3, e.CellBounds.Top + 3)
DataGridView1.Rows(e.RowIndex).Height = icoAtomico.Height + 10
DataGridView1.Columns(e.ColumnIndex).Width = icoAtomico.Width + 10
e.Handled = True
End If
End Sub
Nota: El icono tiene que estar en la ruta que se encuentra el ejecutable.