Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19963 > unrolled thread
| Started by | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| First post | 2022-03-30 01:18 -0700 |
| Last post | 2022-04-06 03:49 -0700 |
| Articles | 4 — 2 participants |
Back to article view | Back to it.comp.lang.visual-basic
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
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2022-03-30 01:18 -0700 |
| Subject | Filtro Checked listbox |
| Message-ID | <ea4bf7ed-1ad6-4329-aa13-9b29ef4617d0n@googlegroups.com> |
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
[toc] | [next] | [standalone]
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2022-03-30 06:30 -0700 |
| Message-ID | <5a8dfbb1-b70f-49e5-b930-e1d15aa220c5n@googlegroups.com> |
| In reply to | #19963 |
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
[toc] | [prev] | [next] | [standalone]
| From | "Freccia (VegetaSSj)" <NIENTESPAMfreccia_vegetassj@hotmail.invalid> |
|---|---|
| Date | 2022-04-03 15:53 +0200 |
| Message-ID | <1o8f5thmti6lt.al6bptnlstn4$.dlg@40tude.net> |
| In reply to | #19964 |
Su "it.comp.lang.visual-basic", ==Marco75=> ha scritto: > 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 Fatti una classe di appoggio es. Class MyItem Property Value as string End Class Poi all'avvio ti carichi un List(Of Item), e quando cerchi con Linq fai Dim listaFiltrata= listaCompleta.Where(Function (t) t.Value.ToUpper().Contains(tb_Cerca.Text.ToUpper()) A questo punto chiami una sub che carica gli elementi spuntati. Se ti serve tenere in memoria le spunte degli elementi non filtrati aggiunti una proprietà Checked alla classe MyItem. -- Freccia@Bulldozer63 :D
[toc] | [prev] | [next] | [standalone]
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2022-04-06 03:49 -0700 |
| Message-ID | <818bc152-101b-46bd-9e51-b33c6ef7db63n@googlegroups.com> |
| In reply to | #19966 |
Il giorno domenica 3 aprile 2022 alle 15:53:04 UTC+2 Freccia (VegetaSSj) ha scritto: > Su "it.comp.lang.visual-basic", ==Marco75=> ha scritto: > > > 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 > Fatti una classe di appoggio es. > Class MyItem > Property Value as string > End Class > > Poi all'avvio ti carichi un List(Of Item), e quando cerchi con Linq fai > Dim listaFiltrata= listaCompleta.Where(Function (t) > t.Value.ToUpper().Contains(tb_Cerca.Text.ToUpper()) > > A questo punto chiami una sub che carica gli elementi spuntati. > > Se ti serve tenere in memoria le spunte degli elementi non filtrati > aggiunti una proprietą Checked alla classe MyItem. > > > -- > Freccia@Bulldozer63 :D grazie, non so perchè non ho ricevuto la mail della tua risposta che vedo solo ora... Marco
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.lang.visual-basic
csiph-web