Como convertir una celda de un datagridview en un combobox
net es una aplicación winform,
Yo cargo los datos de en mi datagridview mediante una consulta,
Y hay una columna ("locales") que no se carga nada, al hacer una consulta,
Pero en el caso de que el usuario quiera editar esa columna, o mejor dicho esa celda quiero que se convierta en un combobox con los datos de mis locales, y así el usuario pueda seleccionar el local, al perder el foco, dicha celda vuelva a convertirse en un textbox claro que con el dato seleccionado.
Seria dinámico solo se converteria en un combobox cuando se entra en alguna celda de dicha columna, y el combobox estaría cargado con datos de una consulta, al seleccionar un dato vuelva a ser un textbox. No se si me explico.
Aquí tengo un código pero me bota error al cargar
Public Sub LLENAR_LOCALES(DATAGRIDVIEW As DataGridView, FECHA As String, Optional ByVal index As Integer = -1)
Try
For Each ds As DataGridViewRow In DATAGRIDVIEW.Rows
If DATAGRIDVIEW.DataSource Is Nothing Or DATAGRIDVIEW.Rows.Count = 0 Or index = -1 Then Exit Sub
With DATAGRIDVIEW.Rows(index)
Dim Id As String
Dim celda As DataGridViewComboBoxCell = TryCast(.Cells("LOCALES"), DataGridViewComboBoxCell)
Id = .Cells("ID").Value
Dim cmd As New SqlCommand("USP_COMP01_LISTAR_LOCALES_xFechayID", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@FECHA", FECHA)
cmd.Parameters.AddWithValue("@SKU_COD", Id)
Dim da As New SqlDataAdapter(cmd)
Dim tbl As New DataTable()
da.Fill(tbl)
celda.DataSource = tbl
celda.ValueMember = "LOCAL"
celda.DisplayMember = "LOCAL"
.Cells.Add(celda)
.Cells("Locales").Value = tbl.Rows(0).Item(0).ToString
'Next
End With
Catch ex As Exception
MsgBox(ex.Message)
End Try
1 respuesta
Respuesta de José Eduardo Martínez Patricio