C#-使用foreach和if语句循环DataGridView行-缺少最后一项

C#-使用foreach和if语句循环DataGridView行-缺少最后一项,c#,if-statement,foreach,datagridview,C#,If Statement,Foreach,Datagridview,我有一个带有复选框列的DataGridView 现在,我想使用一个活动复选框遍历所有行,并打印出IdUser和True foreach (DataGridViewRow row in userDataGridView.Rows) { if (row.Cells[5].Value.ToString() == "True") { MessageBox.

我有一个带有复选框列的DataGridView

现在,我想使用一个活动复选框遍历所有行,并打印出
IdUser
True

foreach (DataGridViewRow row in userDataGridView.Rows)
            {
                if (row.Cells[5].Value.ToString() == "True")
                {
                    MessageBox.Show(row.Cells[0].Value.ToString() + " - " + row.Cells[5].Value.ToString());
                }

            }


在本例中,带有
IdUser
17的行是最后选择的一行

我不知道为什么,但我只看到第15条是最后一条。17不再显示

有人能帮忙吗


我现在尝试了以下方法:

foreach(userDataGridView.Rows中的DataGridViewRow行)
{
msg+=row.Cells[0]。Value.ToString()+“-”+
row.Cells[5].Value.ToString()+“\r\n”;
}

经验表明,最后一行总是带有选中复选框,但不知何故无法识别。

好的,我找到了一个解决方案。我补充说

userDataGridView.EndEdit();

在循环之前,现在最后选中的复选框也被识别。

只是为了理解并了解下一次:为什么这个问题的评分为-1?请查看我的答案和我的评论。