我想从用户选择的行开始清除datagridview。我正在尝试一些方法来实现它,但是它们都会产生一些错误,现在我有了类似的东西:

foreach(DataGridViewRow row in this.dataGridView1.Rows)
{
    if(row.Index >= odelementu - 1)
      dataGridView1.Rows.RemoveAt(row.Index);
}


用户需要选择我们应该从哪一行中清除datagridview,然后单击按钮

odelementu //this variable represents the starting row


我不知道为什么循环会丢失一些行。如有任何建议,我将不胜感激

最佳答案

这是因为您在DataGridViewRowCollection循环中修改了foreach并使index成为inexact。尝试以下方法:

while(dataGridView1.Rows.Count>=odelementu) {
  dataGridView1.Rows.RemoveAt(odelementu-1);
}

10-06 14:11