Как преобразовать столбец Data gridview в список строк? - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь преобразовать первый столбец из Data Grid View в список строк , затем выполните поиск по списку и выделите соответствующую строку красным цветом.

Это то, что у меня сейчас есть

 Dim search As String = txtsearch.Text
 Dim lsttitlesort As New List(Of String)()

        For i = 0 To dgvbooks.Rows.Count - 1
            lsttitlesort.Add(dgvbooks(0, i).Value)
        Next
        For i As Integer = 1 To lsttitle.Count - 1
            If lsttitlesort(i).ToLower.Contains(search.ToLower) Then
                dgvbooks.Rows(i).DefaultCellStyle.BackColor = Color.Red
            End If
        Next

Проблема в том, что когда я пытаюсь запустить его, он вылетает и отображает сообщение об ошибке:

System.NullReferenceException : 'Ссылка на объект не установлена ​​для экземпляра объекта.'

Я новичок в Представлениях сетки данных : не могли бы вы объяснить мне, как это исправить?

1 Ответ

0 голосов
/ 03 августа 2020

Вы можете искать прямо в DataGridView без использования списка:

Dim search As String = txtsearch.Text

'iterate through all rows of the DataGridView to search the value.
For Each dgrBook As DataGridViewRow In dgvbooks.Rows

    'you can skip the new row at the end (if available).
    If dgrBook.IsNewRow Then
        Continue For
    End If

    'check if first column contains the search value.
    'if search value found on first column set the background color to red, 
    'otherwise reset the background to white.
    If CStr(dgrBook.Cells(0).Value & "").ToLower.Contains(search.ToLower) Then
        dgrBook.DefaultCellStyle.BackColor = Color.Red
    Else
        dgrBook.DefaultCellStyle.BackColor = Color.White
    End If 
Next
...