none
asignar valor true a checkbox de un datagridview RRS feed

  • Pregunta

  • Agregué una columna de tipo checkbox a un datagridview de esta manera:

    Dim colChk As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn()
    colChk.Name = "Imprimir"
    colChk.Width = 50
    With dgvCotiza
    .Columns(0).ReadOnly = True
    .Columns(1).ReadOnly = True
    .Columns.Add(colChk)
    .Columns("Imprimir").DefaultCellStyle.NullValue = True 'Asigno valor por defecto
    End With

    Al ejecutar muestra correctamente la información con la columna checkbox.
    Quiero que todos los registros estén con check para que el usuario imprima todos o deseleccione los que no quiera imprimir.
    Pero al recorrer el datagridview y verificar el valor del campo checkbox, todos aparecen como nothing, significa que el defaultCellStyle.NullValue no asigna el valor true.

    Luego intente lo siguiente:

    For Each dr As DataGridViewRow In dgvCotiza.Rows
    dr.Cells("Imprimir").Value = True
    Next

    Al mandar imprimir y verificar el valor del checkbox igual todos aparecen como nothing, significa que no está asignando el valor true al checkbox.
    Sólo si hago click deseleccionando y vuelvo a hacer click seleccionando nuevamente, ahí sí pone el valor a true.

    He googleado pero no he encontrado hasta el momento manera de resolverlo

    Si alguien puede ayudarme con esto se lo agradezco de antemano, espero se haya entendido lo que expuse.
    lunes, 22 de marzo de 2021 17:45

Respuestas

  • Ya logré solucionar mi problema, en realidad era sencillo. Aquí lo comparto por si alguien tenga un problema similar:

    Dim dtCotiza As New DataTable 'Creo una nueva tabla
    dtCotiza = CotizacionBL.SelCotizaciones(Me.RpID) 'Cargo la información en la tabla
    dtCotiza.Columns.Add("Imprimir", GetType(Boolean)) 'Agrego el campo "Imprimir" de tipo boolean
    Dim i As Int16 = 0
    For Each dr As DataRow In dtCotiza.Rows
    dr("Imprimir") = True 'Asigno como true todos los checkbox
    Next
    dgvCotiza.DataSource = dtCotiza 'lleno el datagridview con la info de la tabla

    No logré encontrar una solución en internet, simplemente se me vino a la mente que tal vez así podría funcionar, lo probé y funcionó.
    Gracias
    Doy por terminado el tema

    • Marcado como respuesta EricRRModerator miércoles, 24 de marzo de 2021 17:40
    miércoles, 24 de marzo de 2021 17:32

Todas las respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 22 de marzo de 2021 21:10
    Moderador
  • Ya logré solucionar mi problema, en realidad era sencillo. Aquí lo comparto por si alguien tenga un problema similar:

    Dim dtCotiza As New DataTable 'Creo una nueva tabla
    dtCotiza = CotizacionBL.SelCotizaciones(Me.RpID) 'Cargo la información en la tabla
    dtCotiza.Columns.Add("Imprimir", GetType(Boolean)) 'Agrego el campo "Imprimir" de tipo boolean
    Dim i As Int16 = 0
    For Each dr As DataRow In dtCotiza.Rows
    dr("Imprimir") = True 'Asigno como true todos los checkbox
    Next
    dgvCotiza.DataSource = dtCotiza 'lleno el datagridview con la info de la tabla

    No logré encontrar una solución en internet, simplemente se me vino a la mente que tal vez así podría funcionar, lo probé y funcionó.
    Gracias
    Doy por terminado el tema

    • Marcado como respuesta EricRRModerator miércoles, 24 de marzo de 2021 17:40
    miércoles, 24 de marzo de 2021 17:32