2016-06-13 3 views
1

Когда я нажимаю на DataGridView он выдает ошибку о том, «Необработанное исключение типа„System.ArgumentOutOfRangeException“произошло в mscorlib.dllОшибка при нажатии на DataGridView

Дополнительная информация: Индекс находился вне диапазона Должно быть. неотрицательным и меньше размера коллекции ».

Вот код раздела, мне это нужно, чтобы при нажатии на какой-то строке, чтобы записать все параметры в Textboxes, поэтому он может быть легко модернизирован

private void dgvList_MouseClick(object sender, MouseEventArgs e) 
     { 
       tbName.Text = dgvList.SelectedRows[0].Cells[0].Value.ToString(); 
       tbSurname.Text = dgvList.SelectedRows[1].Cells[1].Value.ToString(); 
       tbMobile.Text = dgvList.SelectedRows[2].Cells[2].Value.ToString(); 
       tbEmail.Text = dgvList.SelectedRows[3].Cells[3].Value.ToString(); 
       cbCategory.Text = dgvList.SelectedRows[4].Cells[4].Value.ToString(); 
     } 

ответ

0

Вы получаете эту причину ошибки или ваш GridView дона» t имеет 5 строк или 5 столбцов. Сколько строк/столбцов имеет ваш gridview? Помните, что индексирование массива начинается с 0. Убедитесь, что номер номера строки (или) номера, к которому вы обращаетесь, существует.

Кроме того, почему вы получаете доступ к нескольким строкам в одно и то же время, как показано ниже. Это не имеет смысла, потому что в любой момент будет выбрано только 1 строка. ... Правильно?

dgvList.SelectedRows[0] 
dgvList.SelectedRows[1] 

Это скорее должно быть, вероятно, будет

private void dgvList_MouseClick(object sender, MouseEventArgs e) 
     { 
       tbName.Text = dgvList.SelectedRows[0].Cells[0].Value.ToString(); 
       tbSurname.Text = dgvList.SelectedRows[0].Cells[1].Value.ToString(); 
       tbMobile.Text = dgvList.SelectedRows[0].Cells[2].Value.ToString(); 
       tbEmail.Text = dgvList.SelectedRows[0].Cells[3].Value.ToString(); 
       cbCategory.Text = dgvList.SelectedRows[0].Cells[4].Value.ToString(); 
     } 

Спасибо @ stackuser83 за указание, что.

+0

да, возможно 'SelectedRows [0]' для каждой строки кода – stackuser83

+0

@ stackuser83, да правильно. Отредактированный ответ. Спасибо, что указал. – Rahul