исключение nullreferenceException в представлении сетки при нажатии на заголовок

В моем DataGridView selectionChange у меня есть этот код, поэтому при изменении строки текстовое поле также меняется. приведенный ниже код работает, я щелкаю строку, и она отображается правильно, а также когда я нажимаю стрелки вверх/вниз. Моя проблема в том, что когда я нажимаю где-то в Header сетки, у меня возникает эта ошибка nullreferenceexception Object reference not set to an instance of an object.. Я понятия не имею, как с этим справиться, так как я знаю, что он возвращает.

Private Sub DataGridView1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
    Dim index As Integer
    index = DataGridView1.CurrentCell.RowIndex '<<<<--problem here when I click the header
    If (index <= maxrows - 1) Or (index <> Nothing) Then
        TextBox2.Text = DataGridView1.Item(1, index).Value()
        TextBox3.Text = DataGridView1.Item(2, index).Value()
        TextBox4.Text = DataGridView1.Item(3, index).Value()
    End If
End Sub

person Ikong    schedule 15.03.2013    source источник


Ответы (1)


Нулевая ссылка возникает всякий раз, когда вы получаете RowIndex, в котором не выбрана ROW.
Щелчок по заголовку вызывает SORT, и это очищает выбор.
Это поможет вам избавиться от исключения nullreference.

    If DatagridView1.SelectedRows.Count = 0 Then
        Msgbox "Nothing Selected"
        Exit Sub 'Trapping
    End If

Код:

Private Sub DataGridView1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
    If DatagridView1.SelectedRows.Count = 0 Then
        Msgbox "Nothing Selected"
        Exit Sub 'Trapping
    End If

    Dim index As Integer
    With DataGridView
        index = .CurrentRow.RowIndex
        If (index <= maxrows - 1) Then
            TextBox2.Text = .Item(1, index).Value()
            TextBox3.Text = .Item(2, index).Value()
            TextBox4.Text = .Item(3, index).Value()
        End If
    End With
End Sub
person Ruben_PH    schedule 15.03.2013
comment
это тоже было моей проблемой давным-давно. - person Ruben_PH; 15.03.2013