首页 > 解决方案 > DataGridView 中的复选框不会评估单元格是否具有焦点

问题描述

DataGridView (dgv1) 中的第一列有复选框。有趣的是,当您单击所需的最后一个复选框时,一旦您循环遍历该列的行以评估选中的项目,最后一个选中的单元格(带有光标)不会评估为真。循环通过第 0 列中的复选框的语法如下:

    Dim NumCBChecked As Integer = 0
    For i = 0 To dgv1.Rows.Count - 1
        If CBool(dgv1(0, i).Value) = True Then
            NumCBChecked += 1
        End If
    Next

如果包含最后一个选中复选框的单元格处于编辑模式,有没有办法将焦点设置为 false?

顺便说一句,在循环之前刷新编辑状态(如下)没有帮助:

    dgv1.RefreshEdit()

标签: vb.netwinformscheckboxdatagridview

解决方案


根据@JohnG 的评论,该建议的工作方式如下:

dgv1.EndEdit()
Dim NumCBChecked As Integer = 0
For i = 0 To dgv1.Rows.Count - 1
    If CBool(dgv1(0, i).Value) = True Then
        NumCBChecked += 1
    End If
Next

推荐阅读