CheckBox in DataGridView

In this program I will teach you on how to validate a CheckBox control before the value are change inside a DataGridView.
I have tested all the events and only DataGridView CellMouseDown can do this. The point here is to validate first if the user really want to change the value of a CheckBox to true. If not then the value of a CheckBox will revert to false.
The important code in this program is:
Private Sub DataGridView1_CellMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDown If e.ColumnIndex = 5 Then If DataGridView1(5, e.RowIndex).Value() = False Then If MessageBox.Show("Are you sure you want to discontinue this product?", "CheckBox", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then DataGridView1(5, e.RowIndex).Value = True End If End If End If End Sub
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.

Comments
THANK YOU DEAR
THANK YOU DEAR
Thanks
Thank you :)
Thanks - I've been trying to figure this out for a long time
Your code got me on the right track, but didn't work quite as I wanted, so I tried dgv_MouseUp - works perfectly. I have a dgv with the 3rd column a checkbox column. I put a label on my form. When I click a checkbox the value on the label corresponds with the cell value.
Private Sub dgv_CellMouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvBlockModel.CellMouseUp
If e.ColumnIndex = 2 Then
If dgv.CurrentCell.Value = False Then
dgv.CurrentCell.Value = True
Else
dgv.CurrentCell.Value = False
End If
lblValue.Text = (dgv(2, e.RowIndex).Value.ToString)
End If
End Sub
thx
Thank you
Pages
Add new comment