Ricerca in una listview

martedì 11 novembre 2008 - 19.18

ilario Profilo | Senior Member

ciao

mi sono creato questa funzione per ricercare una stringa in una listview.

posso ricercare in qualsiasi punto della lista con FindItemWithText o ricerca in una determinata colonna con un ciclo for nelle righe

solo che la ricerca posso farla all'inizio della stringa m_Inizio o in parte di essa m_substring



Public Function RicercainLsw(ByVal NomeLista As ListView, ByVal RicercaFull As Boolean, ByVal Colonna As Integer, ByVal Testo As String, ByVal Comparazione As StringComparison, ByVal TipoRicerca As mTipoRicerca) As Integer

If RicercaFull = True Then
Dim item As ListViewItem = NomeLista.FindItemWithText(Testo)
'Evita il sollevamento di una NullReferenceException
If (item Is Nothing) Then
Return -1
End If
Return item.Index
' altrimenti ricerca nella colonna specifica
Else
If TipoRicerca = mTipoRicerca.m_Inizio Then
For i As Integer = 0 To NomeLista.Items.Count - 1
If NomeLista.Items(i).SubItems(Colonna).Text.StartsWith(Testo, Comparazione) Then
Return i
End If
Next
Return -1

ElseIf TipoRicerca = mTipoRicerca.m_SubString Then

If Comparazione = StringComparison.Ordinal Then

For i As Integer = 0 To NomeLista.Items.Count - 1
If NomeLista.Items(i).SubItems(Colonna).Text.IndexOf(Testo) > -1 Then
Return i
End If
Next
Return -1

ElseIf Comparazione = StringComparison.OrdinalIgnoreCase Then

For i As Integer = 0 To NomeLista.Items.Count - 1
If NomeLista.Items(i).SubItems(Colonna).Text.ToLower.IndexOf(Testo.ToLower) > -1 Then
Return i
End If
Next
Return -1
End If

End If
End If


End Function

per funzionare funziona bene ma mi chiedevo se c'era qualche metodo più semplice tenendo conto della ricerca completa e per colonna , mi lascia un po così la parte TipoRicerca = mTipoRicerca.m_SubString dover portare a ToLower il testo prima di confrontarlo se la Comparazione = stringComparison.OrdinalIgnoreCase

ciao
ilario

tonyexpo Profilo | Senior Member

Ciao

ti riporto un esempio di come ho creato una funzione che fa una ricerca come la tua:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Antonio Esposito
MCP, MCTS .NET 2.0 Distributed applications

ilario Profilo | Senior Member

ti ringrazio

ho adattato la mia con la tua ed effettivamente risulta molto più pulita

grazie mille
ilario
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5