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