Я настраиваю представление таблицы данных, которое содержит список элементов, с одним столбцом в качестве номера элемента (1, 2, 3) и вторым номером в качестве имени элементов.Я управляю вводом столбца «Номер элемента», используя числовые значения «Вверх» и «Вниз», поэтому при его увеличении добавляются строки, и столбец «Номер элемента» автоматически обновляется (поэтому пользователю не нужно вводить это).Тем не менее, это работает, только если я использую цифры вверх и вниз, нажимая стрелки.Если я наберу число (скажем, 4 элемента), я получу исключение (System.ArgumentOutOfRangeException: «Индекс вышел за пределы диапазона. Должен быть неотрицательным и меньше размера коллекции. Имя параметра: индекс») ипроцедура не работаетКод ниже:
Private Sub numItemNumber_ValueChanged(sender As Object, e As EventArgs) Handles numItemNumber.ValueChanged
While (dgvItems.Rows.Count < numItemNumber.Value)
dgvItems.Rows.Add()
i = numItemNumber.Value
dgvItems.Rows(i).Cells(0).Value = i + 1 'This is where the exception is
End While
End Sub
Я добавил в событие KeyPress, чтобы посмотреть, может ли он обработать введенный элемент, но это не так.
Private Sub numItemNumber_KeyPress(sender As Object, e As EventArgs) Handles numItemNumber.KeyPress
For i = 0 To numItemNumber.Value - 1
dgvItems.Rows(i).Cells(0).Value = i + 1
Next
End Sub
Как я могу отредактировать это, чтобы включить оба события (пользователь использует клавиши вверх и вниз или просто вводит число непосредственно)?Спасибо.