2011-06-21 2 views
1

У меня возникли проблемы с выделением найденного элемента ListView, используя код ниже:VB.net ListView выберите

If lstMaster.View = View.Details AndAlso lstMaster.Items.Count > 0 Then 
    Dim lvi As ListViewItem = lstMaster.FindItemWithText(txtSearchSR.Text, True, 0) 

    If lvi IsNot Nothing Then 
     MsgBox("found") 
     lvi.ListView.Items(0).Selected = True 'Does not seem to work... 
    End If 

End If 

Как я highliht найденного столбца?

Дэвид

+0

У меня есть инструкция «if», которая определяет, должен ли элемент быть выделен. Вы проверили значение lvi, чтобы узнать, действительно ли FindItemWithText находит элемент. –

+0

черт побери! Просто понял, что у вас есть MsgBox («найденный») .. это обнаружение, найденное? –

ответ

1

Вам нужно

lvi.Selected = True 

От вашего сниппета,

lvi.ListView.Items(0) всегда будет возвращать первый ListViewItem в ListView.

+0

Он выделяет только верхний ряд, независимо от того, где находится его список ... – StealthRT

+0

@StealthRT см. Мое редактирование. –

+0

Не работает, извините: o ( – StealthRT

1

Попробуйте установить Подпункты

lvi.Items[0].UseItemStyleForSubItems = false 
lvi.Items[0].SubItems[0].BackColor = Color.Black  
lvi.Items[0].SubItems[0].ForeColor = Color.White 

, если это не работает, попробуйте

lvi.UseItemStyleForSubItems = false 
lvi.SubItems.Add(new ListViewItem.ListViewSubItem(lvi,"subitem", Color.Black, Color.White, lvi.Font)) 
+0

не работает в этом примере. – StealthRT