Visual Basic.NET - asignar valor true a checkbox de un datagridview

 
Vista:

asignar valor true a checkbox de un datagridview

Publicado por Lalo Otiniano (13 intervenciones) el 22/03/2021 18:37:14
Agregué una columna de tipo checkbox a un datagridview de esta manera:

1
2
3
4
5
6
7
8
9
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:

1
2
3
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

asignar valor true a checkbox de un datagridview

Publicado por Phil Rob (1554 intervenciones) el 22/03/2021 20:19:28
Hola,

El código siguiente debería te interesar :

1
2
3
4
5
' ... ... ...
For R As Integer = 0 To ElDataGridView.Rows.Count - 1
       ElDataGridView.Item("Imprimir", R).Value() = True
Next
' ... ... ...

Espero que este te da una buena idea ...

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

asignar valor true a checkbox de un datagridview

Publicado por Lalo Otiniano (13 intervenciones) el 23/03/2021 01:03:29
Gracias por tu apoyo Phil Rob, probé tu código, tampoco funcionó, puse un for adicional después de la asignación para mostrarme los valores del checkbox y me muestra que todos están como true, pero el formulario me muestra todos sin check, como si se perdiera el valor. Ocurre exactamente lo mismo que con el código que publiqué, asigna el valor, pero al mostrar el formulario no muestra la asignación.

De todos modos muchas gracias por intentar ayudarme, sigo investigando, espero encontrar la solución, si alguien sabe como solucionarlo le agradeceré que lo comparta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

asignar valor true a checkbox de un datagridview

Publicado por Phil Rob (1554 intervenciones) el 24/03/2021 17:22:47
Hola,

Perdone me de responder muy tarde ...

No tengo problema con mis codigos. Mira la video : https://www.dropbox.com/s/nzru793jep8h25a/MiDGV.mp4?dl=0

Quizá debes enviar un foto de la pantalla con el DGV. Tiene que verificar el indicio de la columna "Imprimir" y verificar que no es ReadOnly.

Este es el codigo del video :

1
2
3
4
5
6
7
8
9
10
11
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim Linea As Integer
    Linea = MiDGV.CurrentRow.Index
    MiDGV.Item("ColChk", Linea).Value() = False
End Sub
 
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    Dim Linea As Integer
    Linea = MiDGV.CurrentRow.Index
    MiDGV.Item("ColChk", Linea).Value() = True
End Sub

...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

asignar valor true a checkbox de un datagridview

Publicado por Lalo Otiniano (13 intervenciones) el 24/03/2021 18:14:04
Gracias amigo Phil Rob por intentar ayudarme, ya logré solucionar mi problema, en realidad era sencillo
Aquí lo comparto por si alguien tenga un problema similar:
Antes de cargar el datagridview, agregué el campo "Imprimir" de tipo boolean a la tabla , recorrí la tabla asignando true al campo "Imprimir", y luego puse dgvCotiza.source=la tabla con el campo "Imprimir" agregado.

Así quedó el código:
1
2
3
4
5
6
7
8
Dim dtCotiza As New DataTable 'Creo una 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

Y funcionó todo bien.

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ó.

Igual muchas gracias por tu interés y tu apoyo.

Doy por terminado el tema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar