BUSCA NO LISTVIEW
Pessoal boa tarde,
Preciso fazer uma busca dentro de um listview e quando achar o valor procurado selecionar a linha.
Alguém poderia me ajudar?
Obrigado.
Preciso fazer uma busca dentro de um listview e quando achar o valor procurado selecionar a linha.
Alguém poderia me ajudar?
Obrigado.
EXEMPLO ESTRAIDO DO HELP DO VB (MSDN)
' FindItem method.
'Create an integer variable called intSelectedOption
' to store the index of the selected button
' Create a string variable called strFindMe. Use the InputBox
' to store the string to be found in the variable. Use the
' FindItem method to find the string. Option1 is used to
' switch the FindItem argument that determines where to look.
Dim intSelectedOption as Integer
Dim strFindMe As String
If Option1(0).Value = True then
strFindMe = InputBox("Find in " & Option1(0).Caption)
intSelectedOption = lvwText
End If
If Option1(1).Value = True then
strFindMe = InputBox("Find in " & Option1(1).Caption)
intSelectedOption = lvwSubItem
End If
If Option1(2).Value = True then
strFindMe = InputBox("Find in " & Option1(2).Caption)
intSelectedOption = lvwTag
End If
' FindItem method returns a reference to the found item, so
' you must create an object variable and set the found item
' to it.
Dim itmFound As ListItem ' FoundItem variable.
Set itmFound = ListView1. _
FindItem(strFindMe, intSelectedOption, , lvwPartial)
' If no ListItem is found, then inform user and exit. If a
' ListItem is found, scroll the control using the EnsureVisible
' method, and select the ListItem.
If itmFound Is Nothing Then ' If no match, inform user and exit.
MsgBox "No match found"
Exit Sub
Else
itmFound.EnsureVisible ' Scroll ListView to show found ListItem.
itmFound.Selected = True ' Select the ListItem.
' Return focus to the control to see selection.
ListView1.SetFocus
End If
' FindItem method.
'Create an integer variable called intSelectedOption
' to store the index of the selected button
' Create a string variable called strFindMe. Use the InputBox
' to store the string to be found in the variable. Use the
' FindItem method to find the string. Option1 is used to
' switch the FindItem argument that determines where to look.
Dim intSelectedOption as Integer
Dim strFindMe As String
If Option1(0).Value = True then
strFindMe = InputBox("Find in " & Option1(0).Caption)
intSelectedOption = lvwText
End If
If Option1(1).Value = True then
strFindMe = InputBox("Find in " & Option1(1).Caption)
intSelectedOption = lvwSubItem
End If
If Option1(2).Value = True then
strFindMe = InputBox("Find in " & Option1(2).Caption)
intSelectedOption = lvwTag
End If
' FindItem method returns a reference to the found item, so
' you must create an object variable and set the found item
' to it.
Dim itmFound As ListItem ' FoundItem variable.
Set itmFound = ListView1. _
FindItem(strFindMe, intSelectedOption, , lvwPartial)
' If no ListItem is found, then inform user and exit. If a
' ListItem is found, scroll the control using the EnsureVisible
' method, and select the ListItem.
If itmFound Is Nothing Then ' If no match, inform user and exit.
MsgBox "No match found"
Exit Sub
Else
itmFound.EnsureVisible ' Scroll ListView to show found ListItem.
itmFound.Selected = True ' Select the ListItem.
' Return focus to the control to see selection.
ListView1.SetFocus
End If
RESUMINDO, EU USO ASSIM
[c]Private Sub Txt_Procura_Change()
On Error Resume Next
Dim itmFound As ListItem
If Lst_Contatos.Visible Then
Set itmFound = Lst_Contatos.FindItem(Txt_Procura, lvwText, , lvwPartial)
If itmFound Is Nothing Then
Exit Sub
Else
itmFound.EnsureVisible
itmFound.Selected = True
End If
End If
END SUB
[c]Private Sub Txt_Procura_Change()
On Error Resume Next
Dim itmFound As ListItem
If Lst_Contatos.Visible Then
Set itmFound = Lst_Contatos.FindItem(Txt_Procura, lvwText, , lvwPartial)
If itmFound Is Nothing Then
Exit Sub
Else
itmFound.EnsureVisible
itmFound.Selected = True
End If
End If
END SUB
LVFIOROT
Muito obrigado ajudou muito era isso mesmo que estava querendo.
Tem como ao encontrar o valor a linha ficar selecionado?
Muito obrigado ajudou muito era isso mesmo que estava querendo.
Tem como ao encontrar o valor a linha ficar selecionado?
com esse codigo aqui ele seleciona a linha quando encontrado
[c]Private Sub Txt_Procura_Change()
On Error Resume Next
Dim itmFound As ListItem
If Lst_Contatos.Visible Then
Set itmFound = Lst_Contatos.FindItem(Txt_Procura, lvwText, , lvwPartial)
If itmFound Is Nothing Then
Exit Sub
Else
itmFound.EnsureVisible
'se o item for encontrado ele seleciona a linha
itmFound.Selected = True
End If
End If
END SUB
LVFIOROT
Desculpe a a falta de tato, mais tem que fazer algo mais, pois fiz iqualzinho vc me passou, procura certinho mais não seleciona a linha.
Desculpe a a falta de tato, mais tem que fazer algo mais, pois fiz iqualzinho vc me passou, procura certinho mais não seleciona a linha.
segue exemplo
Brother,
Muito obrigado pela ajuda,
Era alguns itens na propriedade do listView
Muito obrigado pela ajuda,
Era alguns itens na propriedade do listView
Tópico encerrado , respostas não são mais permitidas