Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con DataGridViewComboBoxCell

Estas en el tema de Ayuda con DataGridViewComboBoxCell en el foro de Visual Basic clásico en Foros del Web. Estoy utizando un control DataGridView , que inicialmente muestra los datos en columnas del tipo DataGridViewTextBoxColumn Tengo una columna que cuando el usuario ingresa a ...
  #1 (permalink)  
Antiguo 20/12/2006, 10:58
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 4 meses
Puntos: 0
Ayuda con DataGridViewComboBoxCell

Estoy utizando un control DataGridView , que inicialmente muestra los datos en columnas del tipo DataGridViewTextBoxColumn
Tengo una columna que cuando el usuario ingresa a una celda de ésta ,la celda se transforma en un combobox, donde el usuario puede cambiar el valor de esta celda (cuando el usuario sale de esta celda, èsta vuelve a quedar como una del tipo DataGridViewTextBoxCell)


CODIGO
'Evento que tranforma la celda en una DataGridViewComboBoxCell
Private Sub dgrv_Datos_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgrv_Datos.CellEnter
If e.ColumnIndex <> 3 Then
Return
End If
strtmp = dgrv_Datos.Item(e.ColumnIndex, e.RowIndex).Value.ToString()
Dim combo As New DataGridViewComboBoxCell
combo.DataSource = ds.Tables(0)
combo.DisplayMember = "descripcion"
combo.ValueMember = "Id"
dgrv_Datos.Item(e.ColumnIndex, e.RowIndex) = combo
End Sub

'evento que deja la celda como DataGridViewTextBoxCell
Private Sub dgrv_Datos_CellLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgrv_Datos.CellLeave
If e.ColumnIndex <> 3 Then
Return
End If
Dim celda As New DataGridViewTextBoxCell
celda.Value = strtmp
dgrv_Datos.Item(e.ColumnIndex, e.RowIndex) = celda
End Sub

****************************************
todo funciona perfectamente , excepto cuando el rowindex y columnindex son iguales, ahi se genera este error:

Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.
y se produce en la linea de codigo donde se trata de convertir la celda actual en un combobox
dgrv_Datos.Item(e.ColumnIndex, e.RowIndex) = combo

[email protected]
Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:24.