ListView.BackColor не работает для текущей строки, после следующего элемента поиска он работает - PullRequest
0 голосов
/ 01 ноября 2018

У меня странная проблема. Я использую элемент ListView в VB.NET Forms. Во время моего поиска частичного текста (SearchText может быть abc), при поиске для первого экземпляра я пытаюсь изменить BackColor для элемента списка, он не изменяет BackColor для текущей строки.

Принимая во внимание, что при поиске нового подходящего элемента он отображает предыдущий найденный элемент BackColor синим цветом. Есть предложения по решению проблемы? Моя цель - раскрасить текущий соответствующий ряд.

Public Function SearchGridFindNext(ByRef Grid As ListView, ByVal SearchText As String, Optional ByVal FromBeginning As Boolean = False) As Boolean
    Dim StartRowIndex As Integer = 0
    Dim StartNextRowIndex As Integer = 0
    Dim RowIndex As Integer = 0
    Dim IncrementIndex As Integer = 0
    Dim Found As Boolean = False

    If Grid.Items.Count > 0 Then
        If Grid.SelectedItems.Count > 0 Then
            StartRowIndex = Grid.SelectedItems(0).Index
            If FromBeginning Then StartNextRowIndex = 0 Else StartNextRowIndex = Grid.SelectedItems(0).Index + 1
            Grid.SelectedItems.Clear()
        End If

        For RowIndex = StartRowIndex To Grid.Items.Count - 1
            If RowIndex > StartRowIndex Then
                StartNextRowIndex = 0
            End If
            For IncrementIndex = 1 To StartNextRowIndex - 1
                Grid.Items(IncrementIndex).BackColor = Color.White
            Next
            For IncrementIndex = StartNextRowIndex To Grid.Items.Count - 1
                If (Grid.Items(IncrementIndex).SubItems(0).Text.ToUpper.Contains(SearchText)) Then
                    Grid.Items(IncrementIndex).Selected = True
                    Grid.Items(IncrementIndex).EnsureVisible()
                    Grid.Items(IncrementIndex).BackColor = Color.Blue
                    Found = True
                    Exit For
                End If
            Next
            If Found Then Exit For
        Next
    End If
    Return Found
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...