Comprobar si una celda tipo DataGridViewCheckBoxColumn de un DataGridView ha sido marcado (check) o no

Problema: En una columna tipo check deseo saber si está con visto o en blanco.
Solución: Obtener el valor de la columna tipo check Para las columnas tipo check, Microsoft recomienda realizar, primero, lo siguiente:

'Esto es casi copiar y pegar
Private Sub DataGridView1_CurrentCellDirtyStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.CurrentCellDirtyStateChanged
        'Obligatorio para columnas tipo check
        If DataGridView1.IsCurrentCellDirty Then
            DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
        End If
End Sub

Las líneas anteriores son para... algo. En realidad no se el significado completo, pero más o menos es para que la aplicación guarde internamente los cambios realizados al check.

De allí, para saber el valor del check es lo siguiente:

DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
'O mejor dicho:
DataGridView1.Rows(fila).Cells(columna).Value

El valor 1 significa que el check está marcado (con un visto) y el valor 0 significa que no está marcado (en blanco).

Un ejemplo es cuando se desea obtener el valor del check una vez que el usuario lo haya presionado, en este caso lo utilizo así:

Private Sub DataGridView1_CellContentClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        'El evento CellContentClick indica que el usuario ha hecho clic en un campo y su valor ha cambiado
       
        Dim valorCheck as Integer
       
        'Pregunto si el campo que se hizo clic es el del check       
        If e.ColumnIndex = DataGridView1.Columns(0).Index Then               
                valorCheck = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
                'valorCheck obtiene 0 o 1
        End If
End Sub

También se puede usar de forma directa, después de que el usuario ha terminado de editar y se desea saber el valor del campo antes de utilizarlo. Para ello uso un proceso que va por cada línea del DataGridView recorriéndolo.

Dim valorCheck as Integer
For Each row As DataGridViewRow In DataGridView1.Rows 'Recorro todo el grid fila por fila
        valorCheck = CInt(row.Cells(0).Value)
Next

Espero que hayan comprendido.