Вы индексируете выбранные вами строки.если у вас есть менее 6 выбранных строк, то вы выйдете за пределы.Вы, вероятно, хотите получить данные только из одной строки.Проверьте, выбрана ли только одна строка, и затем используйте индекс 0. Убедитесь, что вы установили CRUD.MultiSelect = false
В качестве альтернативы используйте CRUD.CurrentRow
, который когда-либо получит только одну строку.
Form.Designer.cs:
this.CRUD.SelectionChanged += new System.EventHandler(this.CRUD_SelectionChanged);
Form.cs:
private void CRUD_SelectionChanged(object sender, EventArgs e)
{
txtBoxID.Text = CRUD.CurrentRow.Cells[0].Value.ToString();
txtBoxStates.Text = CRUD.CurrentRow.Cells[1].Value.ToString();
txtBoxName.Text = CRUD.CurrentRow.Cells[2].Value.ToString();
txtBoxAddress.Text = CRUD.CurrentRow.Cells[3].Value.ToString();
txtBoxCenter.Text = CRUD.CurrentRow.Cells[4].Value.ToString();
txtBoxCity.Text = CRUD.CurrentRow.Cells[5].Value.ToString();
}