Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema Combobox en DataGridView

Estas en el tema de Problema Combobox en DataGridView en el foro de .NET en Foros del Web. Hola a todos! Estoy utizando un control DataGridView , que inicialmente muestra los datos en columnas del tipo DataGridViewTextBoxColumn Tengo una columna que cuando el ...
  #1 (permalink)  
Antiguo 01/06/2006, 10:58
 
Fecha de Ingreso: agosto-2004
Mensajes: 23
Antigüedad: 19 años, 8 meses
Puntos: 0
Problema Combobox en DataGridView

Hola a todos!

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)

A nivel de codigo seria:
Código:
'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




Talvez haya otra forma de implementar esto????

Agradeceria cualquier ayuda que me puedan dar, ya que he buscado en internet sin encontrar nada.

Gracias!
  #2 (permalink)  
Antiguo 01/06/2006, 19:28
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Vaya rutina, lo único que tienes que hacer es jugar con la propiedad DisplayStyle del DataGridViewComboBoxCell.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 02/06/2006, 13:39
 
Fecha de Ingreso: agosto-2004
Mensajes: 23
Antigüedad: 19 años, 8 meses
Puntos: 0
Gracias por la ayuda xknown, veré como hacer lo que me dices con la propiedad DisplayStyle

Gracias!
  #4 (permalink)  
Antiguo 23/05/2007, 05:51
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Re: Problema Combobox en DataGridView

Muy buenas, tengo el mismo problema que tu,
has conseguido solucionarlo?

La verdad que me he vuelto loco con el DisplayStyle y no consigo que no casque cuando el num de fila y columna son la misma.

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 05:02.