none
Cambio de textbox a combobox al editar en datagridview cell RRS feed

  • Pregunta

  • En el evento CellBeginEdit agrego el datagridviewcomboboxcell así:

         Select Case e.ColumnIndex
                Case 0
                    dgvc_pro = New DataGridViewComboBoxCell
                    gridprojectbranch(e.ColumnIndex, e.RowIndex) = dgvc_pro
                    Dim dspro As New DataSet
                    ..Lleno el dataset

                   

                    ...Lleno el datagridviewcomboboxcell con valores

                    For i = 0 To dspro.Tables(0).Rows.Count - 1
                        dgvc_pro.Items.Add(dspro.Tables(0).Rows(i)(1).ToString)
                    Next

                    ...Muestro el valor de la celda antes de empezar a editar en el datagridviewcomboboxcell
                    For i = 0 To dgvc_pro.Items.Count - 1
                        If dgvc_pro.Items(i).ToString = gridprojectbranch.CurrentCell.Value Then
                            dgvc_pro.Selected = i
                        End If
                    Next
                Case 1
                    ... Otro caso
            End Select

    Luego en el evento CellEndEdit vuelvo a restaurar el textbox para quitar el datagridviewcomboboxcell de la siguiente forma:

           Select Case e.ColumnIndex
                Case 0
                    Dim dgvtc As New DataGridViewTextBoxCell
                    If e.RowIndex > ds.Tables(0).Rows.Count - 1 Then
                        ds.Tables(0).Rows.Add()
                    End If
                    ds.Tables(0).Rows(e.RowIndex)(e.ColumnIndex) = dgvc_pro.Value.ToString
                    gridprojectbranch(e.ColumnIndex, e.RowIndex) = dgvtc
                    dgvtc.Value = ds.Tables(0).Rows(e.RowIndex)(e.ColumnIndex).ToString
                Case 1
                    ...Otro caso
            End Select

    Pero el problema es que cuando el combobox se ubica en la columna 0 y fila 0 me manda el siguiente error en el CellEndEdit: "Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function". Lo más raro de todo es que sólo en esa primera columna de la primera fila sucede.

    Alguien tiene alguna idea de qué puedo estar haciendo mal?

    • Cambiado Enrique M. Montejo martes, 16 de octubre de 2012 17:37 Controles de Windows Forms (De:Lenguaje VB.NET)
    martes, 21 de agosto de 2012 4:22