Solución: Crear un nuevo tipo y asignarlo al grid.
Para mejor comprensión, pongo un ejemplo.
Tengo un formulario llamado Form1, el cual contiene un grid llamado DataGridView1 y un botón llamado Button1.
En el load del formulario tengo el llenado del grid.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Se llenan datos de prueba en el grid Dim dt As New DataTable("b") dt.Columns.Add("col") dt.Rows.Add("bb1") dt.Rows.Add("bb2") dt.Rows.Add("bb3") Me.DataGridView1.DataSource = dt 'Se crea una columna combo, se llenan de datos de prueba y se añade al grid Dim cmb As New DataGridViewComboBoxColumn() cmb.Items.Add("111") cmb.Items.Add("222") cmb.Items.Add("333") Me.DataGridView1.Columns.Add(cmb) End Sub
Luego, el cambio de tipo lo tengo en el evento Click del botón.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cell As New DataGridViewTextBoxCell() 'Creamos un nuevo tipo de celda cell.Value = "bb1" 'Se pone un valor cualquiera Me.DataGridView1(1, 1) = cell 'Se lo cambia en la posicion deseada End Sub
Nota: Ejemplos e información proporcionada desde está página web: Windows Forms Data Controls and Databinding FAQ