我的 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;
}
}
我相信,当您循环遍历网格并删除当前行时,它会弄乱网格的索引,到目前为止,这将导致行向上移动一个级别。因此,当您进一步前进到下一行时,它已经移动到您删除该行的索引。
你最好的选择是使用 for 循环并反向运行它,这应该可以正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)