DataGridView删除行仅删除备用行

Jon*_*Jon 4 .net c# datagridview winforms

我在DataGridView中有100行.然后我删除每一行,如下所示,但因为它围绕ID循环进入0,2,4,6,8,因此它只删除偶数行.这是怎么回事?

                foreach (DataGridViewRow row in dgvData.Rows)
                {
                    try
                    {
                        if (row.IsNewRow)
                            continue;

                        string PalletID = row.Cells[1].Value.ToString();
                        string Location = row.Cells[2].Value.ToString();


                        dgvData.Rows.Remove(row);
                        AddToList(PalletID + " located in " + Location + " was uploaded");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error Uploading Data");
                        AddToList("Error uploading data " + ex.Message);
                        continue;
                    }
                }
Run Code Online (Sandbox Code Playgroud)

V4V*_*tta 7

我相信当你遍历网格并删除当前行时,它会弄乱网格的索引,到目前为止会导致行向上移动一级.因此,当您继续前进到下一行时,它已经移动到您删除该行的索引.

你最好的选择是使用for循环并反向运行,这应该没问题.