Principales respuestas
Insertar columna ComboBox en un Datagridview

Pregunta
-
Buenos días, llevo horas intentando una solución y consultados un buen número de posts, sin ningún resultado hasta el momento.
En tiempo de ejecución, generado un datgridview y conformadas las propiedades de las columnas, quiero sustituir una columna tipo TextBox por una tipo ComboBox. Elimino una determinada columna y a continuación inserto la que le sustituye. La columna se inserta correctamente en su posición, propiedades encabezado, ancho, etc., las asume bien, pero el combo no despliega ningún ítem y no toma el color indicado, según el código a continuación.
He publicado este tema hace unas horas, pero, por alguna razón que desconozco, no lo veo. Mis disculpas si lo duplico.
Saludos
'Elimino la columna
dgv.Columns.Remove("Grid_01")
'column es del tipo New DataGridViewComboBoxColumn
With column
'Verificado aquí que DataTable (dt) existe y el nombre de los campos
.DataSource = dt
.DisplayMember = "Campo"
.ValueMember = "IDcampo"
.AutoComplete = True
.FlatStyle = FlatStyle.Flat
.DefaultCellStyle.BackColor = Color.Cyan
.HeaderText = "Header_01"
.CellTemplate = New DataGridViewComboBoxCell
.Visible = True
.Width = 120
. 'Otras propiedades
End With
'Inserto la columna combo en su lugar
dgv.Columns.Insert(1, column)
Respuestas
-
Realiza el binding luego del Insert de la columna
'Inserto la columna combo en su lugar dgv.Columns.Insert(1, column) With column .DataSource = dt .DisplayMember = "Campo" .ValueMember = "IDcampo" End With
- Marcado como respuesta aringo domingo, 15 de noviembre de 2015 11:04
Todas las respuestas
-
Realiza el binding luego del Insert de la columna
'Inserto la columna combo en su lugar dgv.Columns.Insert(1, column) With column .DataSource = dt .DisplayMember = "Campo" .ValueMember = "IDcampo" End With
- Marcado como respuesta aringo domingo, 15 de noviembre de 2015 11:04
-
-
Por si alguien pudiera necesitarlo más adelante. Encontrado el problema del color
Va en la misma dirección que la solución para lo anterior, hay que colocarlo después de insertar la columna
'Inserto la columna combo en su lugar dgv.Columns.Insert(1, column) With column .DataSource = dt .DisplayMember = "Campo" .ValueMember = "IDcampo"
.FlatStyle = FlatStyle.Flat
.DefaultCellStyle.BackColor = Color.Cyan End With