我有一个datagridview,在其中我要在表单加载事件中创建一个复选框列:
Dim chkDownLoad As New DataGridViewCheckBoxColumn()
dgv.Columns.Add(chkDownLoad)
chkDownLoad.HeaderText = "DownLoad"
chkDownLoad.Name = "DownLoad"
dgv.Columns.Add("ApproxDate", "ApproxDate")
我也尝试过:
Dim chkDownLoad As New DataGridViewCheckBoxColumn()
chkDownLoad.HeaderText = "DownLoad"
chkDownLoad.Name = "DownLoad"
dgv.Columns.Insert(0, chkDownLoad)
dgv.Columns.Add("ApproxDate", "ApproxDate")
当我运行程序时,将构建几行,并且未选中任何复选框。我可以检查其中的一个或全部,然后单击“保存”按钮,但是最后一个复选框始终显示为false。如果我返回并选择其他任何单元格,则为false的复选框将变为true。我试图编写代码以取消选择所有内容,但这不起作用。
下面是我为调试而编写的噩梦代码。
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
For iR As Integer = 0 To dgv.RowCount - 1
If dgv.Rows(iR).Cells(0).Selected = True Then
Stop
End If
If dgv.Rows(iR).Cells(0).Value = True Then
Debug.Print(iR.ToString & " " & dgv.Rows(iR).Cells(5).Value)
End If
Next
For n As Integer = 0 To dgv.RowCount - 1
If CBool(dgv.Rows(n).Cells("Download").Value) Then
Stop
End If
Next
'Dim blnChecked As Boolean = False
'For iR As Integer = 0 To dgv.RowCount - 1
' If TypeOf dgv.Rows(iR).Cells(0) Is DataGridViewCheckBoxCell Then
' blnChecked = CType(dgv.Rows(iR).Cells(0).Value, Boolean)
' End If
' Debug.Print("Row: " & iR.ToString & " is " & blnChecked.ToString)
' 'If dgv.Rows(iR).Cells(0).Value = True Then
' ' Debug.Print(iR.ToString & " " & dgv.Rows(iR).Cells(5).Value)
' 'End If
'Next
End Sub
对于选中的单元格,代码确实停止了,但是该单元格的值始终为false...。除非我取消选择它!
我显然做错了,因为我找不到与错误有关的任何东西,因此它必须在我的代码中。请帮忙!?