У меня есть вид сетки данных в моем приложении C#. Когда я выделите строку, и я попал удалить, то строка будет удалена, но при запуске обновления и обновить команду я получаю индекс из исключения диапазонаИсключение DataGridViewRow за пределами допустимого диапазона при обновлении
private void btnDeleteMember_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow item in this.dgvAllFaculty.SelectedRows)
{
int row = item.Index;
FacultyMember member = memberList[row];
if (row >= 0)
{
memberList.RemoveAt(row);
Save();
this.dgvAllFaculty.Update();
this.dgvAllFaculty.Refresh();
return;
}
}
}
При отладке я замечаю, что не будет работать на вызов обновления. Ошибка, которую я получаю:
System.IndexOutOfRangException: Index 1 does not have a value
at System.Windows.Forms.CurrencyManager.get_Item(Int32 index)
at
System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32 rowIndex)
Если есть что-то еще, что вам нужно, дайте мне знать. Мне интересно, когда, когда обновление происходит из-за его безумной причины, все еще думает, что есть второй ряд?