vb.net datagridview复选框循环错误

vb.net datagridview复选框循环错误,vb.net,datagridview,Vb.net,Datagridview,我目前正在遍历datagridview1复选框列(column1),如果选中该复选框,则column3中的单元格值必须更改 当datagridview1.DefaultView.RowFilter=Nothing 但是,当启用DefaultView.RowFilter时,它不起作用 For Each row As DataGridViewRow In DataGridView1.Rows Dim isSelected As Boolean = Convert.ToBoolean(row.Cell

我目前正在遍历datagridview1复选框列(column1),如果选中该复选框,则column3中的单元格值必须更改

datagridview1.DefaultView.RowFilter=Nothing
但是,当启用
DefaultView.RowFilter
时,它不起作用

For Each row As DataGridViewRow In DataGridView1.Rows
Dim isSelected As Boolean = Convert.ToBoolean(row.Cells(0).Value)
If isSelected Then
row.Cells(3).Value = ComboBox2.Text  
End If
Next 
假设我选择了5个复选框,但只有1条记录将更改,其他4条记录将保持不变。只有在启用datagridview1行筛选器时才会发生这种情况

只是为了好玩试试

For i As Integer = 0 To DataGridView1.Rows.Count - 2
  'Your code here
Next

请注意-2很明显,网格正在计算最后一行的星号,其中没有任何内容作为一行。

在谷歌研究后,我能够修复它

Try

        For i = DataGridView1.Rows.Count - 1 To 0 Step -1

            If (DataGridView1.Rows(i).Cells(0).Value = True) Then

                DataGridView1.Rows(i).Cells("Shift").Value = ComboBox2.Text

            End If


        Next

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

谢谢大家

错误是什么?“它不工作”并不是对问题的一个很好的描述。您可能需要更详细地描述一下什么没有按预期工作。此外,您还需要让其他人知道网格是如何设置的……网格是如何填充的。有数据源吗?复选框列是该数据源的一部分吗?这将产生不同,因为您已说明网格可能会被过滤。最好创建一个示例,以便其他人可以重现该问题。对不起,JohnG,网格由access数据库通过oledb适配器填充。复选框列手动添加到网格(不是数据源的一部分)。Comobox1将过滤名为“Shift”的列