Disculpas por resucitar un tema antiguo pero es para poner la solución por la que opté al final...
Lo resolví poniendo celdas tipos imagen y programando el evento CellClick del grid poniendo casos para cada una de estas celdas tipo "falso botón":
Código vb:
Ver originalPrivate Sub myDataGrid_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles myDataGrid.CellClick
If (CInt(e.ColumnIndex.ToString) >= 0) Then
If Me.myDataGrid.Columns(e.ColumnIndex).Name = "btDetalle" Then
call mostrarDetalle()
ElseIf Me.myDataGrid.Columns(e.ColumnIndex).Name = "btAsignar" Then
Call asignarObjeto()
ElseIf Me.myDataGrid.Columns(e.ColumnIndex).Name = "btBorrar" Then
Call borrarFila()
End If
End If
End Sub
No se si habrá otra solución mejor con botones-imagen reales pero esta funciona bien.
Saludos