上次选中带有复选框的单元格未正确读取

时间:2018-10-08 18:54:12

标签: vb.net

我有一个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...。除非我取消选择它!

我显然做错了,因为我找不到与错误有关的任何东西,因此它必须在我的代码中。请帮忙!?

0 个答案:

没有答案