AttaUrRahman Ответов: 2

Какой будет правильный код для datetime


- Необработанное исключение типа "система".Об' произошел в mscorlib.dll

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

private void dataGridViewentryform_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            textBoxserialno.Text = dataGridViewentryform.SelectedRows[0].Cells[1].Value.ToString();
            textBoxname.Text = dataGridViewentryform.SelectedRows[0].Cells[2].Value.ToString();
            textBoxfathername.Text = dataGridViewentryform.SelectedRows[0].Cells[3].Value.ToString();
            comboBoxgender.Text = dataGridViewentryform.SelectedRows[0].Cells[4].Value.ToString();
            textBoxcnic.Text = dataGridViewentryform.SelectedRows[0].Cells[5].Value.ToString();
            textBoxmobile.Text = dataGridViewentryform.SelectedRows[0].Cells[6].Value.ToString();
            dateTimePickerdob.Text = dataGridViewentryform.SelectedRows[0].Cells[7].Value.ToString();
            textBoxvillage.Text = dataGridViewentryform.SelectedRows[0].Cells[8].Value.ToString();
            textBoxvc.Text = dataGridViewentryform.SelectedRows[0].Cells[9].Value.ToString();
            textBoxtehsil.Text = dataGridViewentryform.SelectedRows[0].Cells[10].Value.ToString();
            textBoxdistrict.Text = dataGridViewentryform.SelectedRows[0].Cells[11].Value.ToString();
            textBoxoccupation.Text = dataGridViewentryform.SelectedRows[0].Cells[12].Value.ToString();
        }


Что я уже пробовал:

Я пробовал, но не нашел подходящего решения.

BillWoodruff

поместите точку останова в первую строку кода: используйте F11 для одношагового поиска кода umtil, пока не найдете строку, в которой произошла ошибка. обновите свой вопрос здесь, чтобы включить, в какой строке возникает ошибка.

2 Ответов

Рейтинг:
2

Richard MacCutchan

Решение состоит в том, чтобы найти строку кода, в которой возникает исключение: используйте отладчик, чтобы помочь вам. Как только вы это обнаружите, посмотрите на все поля индекса, которые используются, чтобы понять, почему они находятся вне диапазона. Например, если dataGridViewentryform не имеет никаких строк, выбранных тогда ссылка dataGridViewentryform.SelectedRows[0] не будет действительным. Аналогично, если строка содержит только 12 ячеек, то значение индекса должно находиться в диапазоне [0..11].


Рейтинг:
0

RickZeeland

Как отметил Ричард, ячейки начинаются с 0, вы можете использовать GetCellCount() чтобы получить количество клеток.
Смотрите пример здесь: Получение выбранных ячеек, строк и столбцов в элементе управления DataGridView - Windows Forms | Microsoft Docs[^]