FILTRAGEM DE UMA LISTBOX
Alterado em 12/11/2025 14:49:56
olá boa tarde pessoal.
Estou com um problema em fazer a filtragem á medida que escrevo numa textbox.text o exemplo ele faz a filtragem , mas quando apago um caracter ele não mostra a lista seguinte se tiver para mostrar mais alguns dados. será que alguém tem a gentileza de me ajudar?
Deixo aqui o exemplo para que me possam ajudar.
sem outro assunto de momento.
Vítor Teles
Estou com um problema em fazer a filtragem á medida que escrevo numa textbox.text o exemplo ele faz a filtragem , mas quando apago um caracter ele não mostra a lista seguinte se tiver para mostrar mais alguns dados. será que alguém tem a gentileza de me ajudar?
Deixo aqui o exemplo para que me possam ajudar.
sem outro assunto de momento.
Vítor Teles
' O quadro é o nome da ListBox
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Dim items = From it In Quadro.Items.Cast(Of Object)()
Where it.ToString().IndexOf(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0
Dim matchingItemList As List(Of Object) = items.ToList()
Quadro.BeginUpdate()
Quadro.Items.Clear()
For Each item In matchingItemList
Quadro.Items.Add(item)
Next
Quadro.EndUpdate()
End Sub
Estou com um problema em fazer a filtragem á medida que escrevo numa textbox.text o exemplo ele faz a filtragem , mas quando apago um caracter ele não mostra a lista anterior se tiver para mostrar mais alguns dados.Deixo aqui o código para todos verem porque está em VB.net 2019 o ficheiro.
Será que alguém tem a gentileza de me ajudar?
Deixo aqui o exemplo para que me possam ajudar.
sem outro assunto de momento.
Vítor Teles
Alterado em 13/11/2025 12:07:53
Será que só não tá faltando justamente o tratamento de matchingItemList ?
Algo como quando matchingItemList.count == 0 então mostra tudo de volta ?
Sugestão: veja se não tem componente pronto para isso, tipo um Select2 para o VB.net
Algo como quando matchingItemList.count == 0 então mostra tudo de volta ?
Sugestão: veja se não tem componente pronto para isso, tipo um Select2 para o VB.net
Olá WebMaster Boa Tarde.
Pode fazer o favor de exemplificar com o exemplo que facultei em cima , por favor, é que não estou a ver como fazer plese!
Pode fazer o favor de exemplificar com o exemplo que facultei em cima , por favor, é que não estou a ver como fazer plese!
Ninguém para me ajudar?
PROGRAMADORVBNET como você preenche o list box?
Já pensou em usar o binding source?
voce filtra bem fácil por ele
Já pensou em usar o binding source?
voce filtra bem fácil por ele
Complementando, o WEBMASTER está certo, você recarrega o matchingItemList cada vez que altera o texto, nunca voltando aos dados originais, aí é que está o erro ao apagar um caractere
Olá Boa tarde César não tem um exemplo que me possa facultar? Ficaria muito agradecido.
Alterado em 30/11/2025 07:28:18
Presados, tenho este exemplo que arranjei , mas ele não faz a atualização se quisermos ( ele até funfa quando inicio o programa o problema é ele juntar á listbox1(quadro) mais itens e absovelos á ( listaOriginal ) , alguém me pode ajudar ?
Public listaOriginal As New List(Of String)
Public jaInicializado As Boolean = False
If Not jaInicializado Then
listaOriginal = Quadro.Items.Cast(Of String)().ToList()
jaInicializado = True
End If
Quadro.BeginUpdate()
Quadro.Items.Clear()
Dim filtro As String = TextBox1.Text.Trim().ToLower()
Dim itensFiltrados As IEnumerable(Of String)
If String.IsNullOrEmpty(filtro) Then
itensFiltrados = listaOriginal
Else
itensFiltrados = listaOriginal.Where(Function(item) item.ToLower().Contains(filtro))
End If
Quadro.Items.AddRange(itensFiltrados.ToArray())
Quadro.EndUpdate()
end if
Faça seu login para responder