sardin3s Posted July 30, 2012 at 04:32 PM Report #471016 Posted July 30, 2012 at 04:32 PM É possível procurar um valor em apenas uma coluna da Listview? Já pesquisei de várias maneiras e não encontro a resposta em lado nenhum. O meu código procura em todos os items da listview, no entanto apenas queria pesquisar o valor na coluna 3 que é a coluna da descrição dos artigos existentes na listview: Dim Pesquisa As String Pesquisa = InputBox("Introduza a parcialidade da descrição a procurar", "Procurar por Descrição") Dim itemSearch As ListViewItem = FindListViewText(Me.ListView1, Pesquisa.ToString) If itemSearch IsNot Nothing Then Me.ListView1.TopItem = itemSearch Me.ListView1.TopItem.Selected = True Else MessageBox.Show("Não foi encontrado nenhum artigo com essa descrição!" & vbCrLf & "Volte a tentar com outro termo", "Pesquisar por Descrição", MessageBoxButtons.OK, MessageBoxIcon.Information) End If
ribeiro55 Posted July 30, 2012 at 05:29 PM Report #471024 Posted July 30, 2012 at 05:29 PM For Each LVI As ListViewItem In ListView1 If LVI.SubItems(2).Text.ToLower.Contains(Pesquisa.ToLower) Then 'fazer qualquer coisa com o item. LVI representa um item onde a string pesquisa foi encontrada na terceira coluna End If Next É natural que tenha algum erro. Estou a escrever de cabeça. Não posso verificar isso agora no IDE Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
sardin3s Posted July 30, 2012 at 06:17 PM Author Report #471031 Posted July 30, 2012 at 06:17 PM Obrigado Ribeiro55 🙂 Foi só corrigir a primeira linha ao acrescentar o ".items" For Each LVI As ListViewItem In ListView1.Items If LVI.SubItems(2).Text.ToLower.Contains(Pesquisa.ToLower) Then Me.ListView1.TopItem = itemSearch Me.ListView1.TopItem.Selected = True End If Next Else MessageBox.Show("Não foi encontrado nenhum artigo com essa descrição!" & vbCrLf & "Volte a tentar com outro termo", "Pesquisar por Descrição", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Agora só falta mesmo criar um alerta para quando o valor existir mas não se encontrar na coluna desejada (neste caso a coluna com index 2). O problema é como identificar o fim do ciclo For Each, existe alguma instrução para isso? É que nem um contador posso colocar visto que não sei o fim do ciclo.
ribeiro55 Posted July 30, 2012 at 06:58 PM Report #471033 Posted July 30, 2012 at 06:58 PM Podes saber o fim do ciclo. Podes usar um ciclo For normal. For i as Integer = 0 To ListView1.Items.Count Dim LVI As ListViewItem = ListView1.Items(i) 'tcharan Next Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
sardin3s Posted July 31, 2012 at 08:54 AM Author Report #471061 Posted July 31, 2012 at 08:54 AM Tens toda a razão, copiar código é fácil, entende-lo é outra coisa 😛 Tive que aldrabar, mas o que importa é que está a funcionar! Try Dim Pesquisa_Ref As String Pesquisa_Ref = InputBox("Introduza a parcialidade da descrição a procurar", "Procurar por Descrição") Dim itemSearch As ListViewItem = FindListViewText(Me.ListView1, Pesquisa_Ref.ToString) If itemSearch IsNot Nothing Then For i As Integer = 0 To ListView1.Items.Count Dim LVI As ListViewItem = ListView1.Items(i) If LVI.SubItems(2).Text.ToLower.Contains(Pesquisa_Ref.ToLower) Then Me.ListView1.TopItem = itemSearch Me.ListView1.TopItem.Selected = True Exit For Else If LVI.SubItems(0).Text.ToLower.Contains(Pesquisa_Ref.ToLower) Or LVI.SubItems(1).Text.ToLower.Contains(Pesquisa_Ref.ToLower) Then MessageBox.Show("Não foi encontrado nenhum artigo com essa descrição!" & vbCrLf & "Volte a tentar com outro termo", "Pesquisar por Descrição", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit For End If End If Next Else MessageBox.Show("Não foi encontrado nenhum artigo com essa descrição!" & vbCrLf & "Volte a tentar com outro termo", "Pesquisar por Descrição", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Catch ex As Exception End Try Mais uma vez, obrigado Ribeiro 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now