none
Seleccionar Todas las Filas de un DataGridView por medio de una Columna tipo CheckBox

    Pregunta

  • Cordial saludo.

    necesito que todas las filas del DataGridView queden seleccionadas por con solo un boton:

    Private Sub DataGridViewPredios_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridViewPredios.CellContentClick
            If e.ColumnIndex = Me.DataGridViewPredios.Columns.Item("Seleccionar").Index Then
                Dim chkcell As DataGridViewCheckBoxCell = Me.DataGridViewPredios.Rows(e.RowIndex).Cells("Seleccionar")
                chkcell.Value = Not chkcell.Value
            End If
        End Sub
    
        Private Sub Cb_Seleccionar_CheckedChanged(sender As Object, e As EventArgs) Handles Cb_Seleccionar.CheckedChanged
    
            If Cb_Seleccionar.CheckState = CheckState.Checked Then
                DataGridViewPredios.Columns.Item("Seleccionar").Visible = True
            Else
                DataGridViewPredios.Columns.Item("Seleccionar").Visible = False
            End If
        End Sub


    JorgeLeonardoDC

    jueves, 29 de diciembre de 2016 16:30

Respuestas

  • Te sirve con un botón de check afuera de la grilla

    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
            Dim dgv As DataGridView = DirectCast(DataGridView1, DataGridView)
            If dgv.Rows.Count = 0 Then
                Return
            End If
    
            For Each row As DataGridViewRow In DataGridView1.Rows
                Dim chk As DataGridViewCheckBoxCell = DirectCast(row.Cells(0), DataGridViewCheckBoxCell)
                If CheckBox1.Checked = True Then
                    chk.Value = True
                    'dgv.Rows(row.Index).DefaultCellStyle.BackColor = System.Drawing.Color.FromName("MenuHighlight")
    
                Else
                    chk.Value = False
                    'dgv.Rows(row.Index).DefaultCellStyle.BackColor = SystemColors.Window
    
                End If
            Next
        End Sub


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.


    • Editado Augusto1982 jueves, 29 de diciembre de 2016 16:43
    • Marcado como respuesta JorgeLeonardoDC jueves, 29 de diciembre de 2016 17:32
    jueves, 29 de diciembre de 2016 16:42

Todas las respuestas

  • Te sirve con un botón de check afuera de la grilla

    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
            Dim dgv As DataGridView = DirectCast(DataGridView1, DataGridView)
            If dgv.Rows.Count = 0 Then
                Return
            End If
    
            For Each row As DataGridViewRow In DataGridView1.Rows
                Dim chk As DataGridViewCheckBoxCell = DirectCast(row.Cells(0), DataGridViewCheckBoxCell)
                If CheckBox1.Checked = True Then
                    chk.Value = True
                    'dgv.Rows(row.Index).DefaultCellStyle.BackColor = System.Drawing.Color.FromName("MenuHighlight")
    
                Else
                    chk.Value = False
                    'dgv.Rows(row.Index).DefaultCellStyle.BackColor = SystemColors.Window
    
                End If
            Next
        End Sub


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.


    • Editado Augusto1982 jueves, 29 de diciembre de 2016 16:43
    • Marcado como respuesta JorgeLeonardoDC jueves, 29 de diciembre de 2016 17:32
    jueves, 29 de diciembre de 2016 16:42
  • JorgeLeonardoDC,

    ¿Intentaste algo? No es para nada complicado, basta recorrer las filas de la colección (bajo cualquier mecanismo) y asignar el valor True a cada celda:

    DataGridViewPredios.Rows.Cast(Of DataGridViewRow)().ToList().
                ForEach(Function(f) f.Cells("NombreColumna").Value = True)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 29 de diciembre de 2016 16:48