Celda tipo Checkbox en Datagridview
Publicado por Agustin (24 intervenciones) el 14/02/2016 09:39:07
Buenas amigos,
Mi problema es el siguiente:
1-Tengo la siguiente consulta que cargo en un datatable (dtAlmacen):
"SELECT * , 1 as Casilla FROM Pedidos"
2-Añado a un datagridview una columna del tipo data DataGridViewCheckBoxColumn y posteriormente lo cargo con el datatable anterior
Dim columna_Recibidos As New DataGridViewCheckBoxColumn
dgvPedidos.Columns.Add(columna_Recibidos)
dgvPedidos.DataSource = dtAlmacen
3-Asocio la columna cero del datagridview a la columna "Casilla" de la consulta (la cual tiene el valor predeterminado de 1) para que al cargar el datagridview me ponga todos los checkbox de la primera columna en true.
dgvPedidos.Columns(0).DataPropertyName = "Casilla"
Todo esto lo hago en el form_Load del formulario y hasta aquí todo perfecto.
Lo que quiero hacer y no consigo, es que cuando el usuario haga click sobre el checkbox marcado del datagridview se le pregunte mediante un messagebox si quiere desmarcar la casilla. En caso que no acepte el messagebox la casilla vuelva a quedarse marcada. Para ello hago lo siguiente, que repito NO ME FUNCIONA.
Lo que me ocurre es que la casilla no se vuelve a marcar, es decir, queda en False y por tanto desmarcada.
Agradecería su ayuda.
Muchas gracias
Mi problema es el siguiente:
1-Tengo la siguiente consulta que cargo en un datatable (dtAlmacen):
"SELECT * , 1 as Casilla FROM Pedidos"
2-Añado a un datagridview una columna del tipo data DataGridViewCheckBoxColumn y posteriormente lo cargo con el datatable anterior
Dim columna_Recibidos As New DataGridViewCheckBoxColumn
dgvPedidos.Columns.Add(columna_Recibidos)
dgvPedidos.DataSource = dtAlmacen
3-Asocio la columna cero del datagridview a la columna "Casilla" de la consulta (la cual tiene el valor predeterminado de 1) para que al cargar el datagridview me ponga todos los checkbox de la primera columna en true.
dgvPedidos.Columns(0).DataPropertyName = "Casilla"
Todo esto lo hago en el form_Load del formulario y hasta aquí todo perfecto.
Lo que quiero hacer y no consigo, es que cuando el usuario haga click sobre el checkbox marcado del datagridview se le pregunte mediante un messagebox si quiere desmarcar la casilla. En caso que no acepte el messagebox la casilla vuelva a quedarse marcada. Para ello hago lo siguiente, que repito NO ME FUNCIONA.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub dgvPedidos_CellContentClick(...) Handles dgvPedidos.CellContentClick
If e.RowIndex >= 0 And e.ColumnIndex = 26 Then (la columna 26 es la correspondiente a la columna "Casilla" la cual está asociada a la columna checkbox que es la cero)
With dgvPedidos
Dim value As Boolean = CType(.CurrentCell.EditedFormattedValue, Boolean)
If value = False Then 'checkbox desmarcado
Dim inf As DialogResult = MessageBox.Show("¿Desea desmarcar casilla seleccionada?", "Título", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If inf = vbOK Then
...
Else
Cancelar_Edicion_dgv = True
.EndEdit()
End If
End If
End With
End If
End Sub
Private Sub dgvPedidos_CellValueChanged(...) Handles dgvPedidos.CellValueChanged
If Not Iniciando Then
If Cancelar_Edicion_dgv Then
Me.dgvPedidos.Rows(dgvPedidos.CurrentRow.Index).Cells(0).Value = False
End If
End If
End Sub
Lo que me ocurre es que la casilla no se vuelve a marcar, es decir, queda en False y por tanto desmarcada.
Agradecería su ayuda.
Muchas gracias
Valora esta pregunta


0