bgcwaterman Ответов: 1

"Практическое руководство . Индекс был вне диапазона при получении значения из ячейки" ошибка


Я получаю ошибку, когда выбираю(щелкаю) строку, из которой хочу получить номер клиента. Datagridview имеет более 200 строк и 9 столбцов. Мне нужно содержимое второго столбца(столбец 1), который отображается в Datagridview. Столбцы Datagridview были переупорядочены из файла данных.

Я нажимаю на 8-ю строку, поэтому я не могу быть вне диапазона для этой строки, и я возвращаю столбец(ячейку) 1, который не должен быть вне диапазона с 9 столбцами.

Я использовал этот же код в другой форме, и он работает.

Что я упускаю??

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

Private AssgnCusNo As Integer = 0

Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellContentClick
        Try
            AssgnCusNo = CInt(DataGridView2.SelectedRows(0).Cells(1).Value.ToString())
           
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
            errornumber = 272 'Assigned error number for logging & debugging.
            clsLogFile = New LogFile(ex.Message, errornumber)
        End Try

    End Sub

1 Ответов

Рейтинг:
12

phil.o

Это может быть потому, что вы используете SelectedRows коллекция; есть ли вероятность, что щелчок по ячейке не приведет к автоматическому выбору соответствующей строки?

Почему бы не использовать для этого аргументы события?

AssgnCusNo = CInt(DataGridView2.Rows(e.RowIndex).Cells(1).Value.ToString())


bgcwaterman

Вот и все.
Спасибо...