Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #19964

Re: Filtro Checked listbox

Newsgroups it.comp.lang.visual-basic
Date 2022-03-30 06:30 -0700
References <ea4bf7ed-1ad6-4329-aa13-9b29ef4617d0n@googlegroups.com>
Message-ID <5a8dfbb1-b70f-49e5-b930-e1d15aa220c5n@googlegroups.com> (permalink)
Subject Re: Filtro Checked listbox
From Marco75 <marcoporzi75@gmail.com>

Show all headers | View raw


Il giorno mercoledì 30 marzo 2022 alle 10:18:33 UTC+2 Marco75 ha scritto:
> ciao, 
> ho una Checkedlistbox popolata tramite una query da SQL Server. 
> vorrei inserire un campo ricerca dove, man mano che digito esegue il filtro sugli item restituendomi quelli corrispondenti. 
> 
> ho provato questo codice, funziona nel senso che mi porta al primo item che trova basato su quanto sto digitando, ma vorrei che andasse a filtrare mostrando solo quello che corrisponde e non portarmi all'item mostrando comunque tutto il resto, è possibile? 
> 
> questo il codice: 
> Private Sub tb_Cerca_TextChanged(sender As Object, e As EventArgs) Handles tb_Cerca.TextChanged 
> 
> tb_Cerca.Text = UCase(tb_Cerca.Text) 
> tb_Cerca.SelectionStart = tb_Cerca.TextLength 
> 
> CklbSelezionaFlowChart.SelectedItems.Clear() 
> If tb_Cerca.Text <> "" Then 
> Dim count As Integer = (CklbSelezionaFlowChart.Items.Count - 1) 
> Dim words As String 
> Dim a As Integer 
> 
> For a = 0 To count 
> words = CklbSelezionaFlowChart.Items.Item(a) 
> If words.ToUpper.Contains(tb_Cerca.Text.ToUpper) Then 
> CklbSelezionaFlowChart.SelectedItems.Add(CklbSelezionaFlowChart.Items.Item(a)) 
> CklbSelezionaFlowChart.Sorted = True 
> End If 
> Next 
> End If 
> 
> grazie 
> Marco


ho trovato un codice che fa al caso mio:

If Trim(tb_Cerca.Text) = "" Then Exit Sub

        Dim lb As ListBox = New ListBox
        Dim s As Integer = 0
        For s = 0 To CklbSelezionaFlowChart.Items.Count - 1
            If InStr(CklbSelezionaFlowChart.Items(s).ToString, tb_Cerca.Text) Then
                lb.Items.Add(CklbSelezionaFlowChart.Items(s))
            End If
        Next

        CklbSelezionaFlowChart.Items.Clear()
        For s = 0 To lb.Items.Count - 1
            CklbSelezionaFlowChart.Items.Add(lb.Items(s).ToString)
        Next
        lb.Dispose()

così la listbox mostra solo gli Item a seguito del filtro però se cancello tutto o parte di quanto inserito in TextBox non ripropone gli item che ha filtrato ma devo rieseguire la query..
in attesa di cortese risposta provo a vedere se risolvo
grazie
Marco

Back to it.comp.lang.visual-basic | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Filtro Checked listbox Marco75 <marcoporzi75@gmail.com> - 2022-03-30 01:18 -0700
  Re: Filtro Checked listbox Marco75 <marcoporzi75@gmail.com> - 2022-03-30 06:30 -0700
    Re: Filtro Checked listbox "Freccia (VegetaSSj)" <NIENTESPAMfreccia_vegetassj@hotmail.invalid> - 2022-04-03 15:53 +0200
      Re: Filtro Checked listbox Marco75 <marcoporzi75@gmail.com> - 2022-04-06 03:49 -0700

csiph-web