GridView Search with textbox string [duplicate]

I have a DataGrid that is populated with (not from a datasource) and I am trying to search the grid based on the text entered into the textbox. When I click the button I get object reference error but I am not sure why. The idea is the search will find the word and then highlight the cells yellow.

Private Sub btnApply_Click(sender As Object, e As EventArgs) Handles btnApply.Click
        Dim temp As Integer = 0
        For i As Integer = 0 To DataGridView1.RowCount - 1
            For j As Integer = 0 To DataGridView1.ColumnCount - 1
                If DataGridView1.Rows(i).Cells(j).Value.ToString = txtGridSearch.Text Then --'Object reference not set to an instance of an object
                    temp = 1
                    DataGridView1.Rows(i).Cells(j).Style.BackColor = Color.Yellow
                End If
            Next
        Next
        If temp = 0 Then
            MsgBox("Item not found")
        End If
    End Sub

  • 1

    The title says GridView, the question says DataGrid and the code says DataGridView. Names are important. Those three are all different things. If you’re using a DataGridView then say that. Don’t be lazy with naming because it can lead to confusion and may wind up with you getting advice that isn’t actually relevant to your issue.

    – 

We know that DataGridView1 is initialized when you have the error because you referred to DataGridView1.RowCount earlier successfully. DataGridView1.Rows(i) is likely valid too, because i is smaller than RowCount. DataGridView1.Rows(i).Cells(j) is likely valid too, because j is smaller than ColumnCount.

So either DataGridView1.Rows(i).Cells(j).Value or txtGridSearch is Nothing. Check for those cases:

If (DataGridView1.Rows(i).Cells(j).Value IsNot Nothing) AndAlso (txtGridSearch IsNot Nothing) AndAlso (DataGridView1.Rows(i).Cells(j).Value.ToString = txtGridSearch.Text) Then

Leave a Comment