Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - ricerca in listview
Forum - Visual Basic 6 - ricerca in listview

Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 21:04
Lunedì, 04/02/2008
Data una list view popolata di dati do la possibilita all' utente tramite una text e un command di fare una ricerca all' interno di tutta la listview sub comprese ma non da esiti se non solo per la prima colonna.


Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command5_Click()  
  2. Call cerca(strfindtext)
  3.  
  4. Dim i As Long
  5. Dim k As Long
  6. Dim nColonne
  7.  
  8. nColonne = ListView.ColumnHeaders.Count - 1
  9. For i = 1 To ListView.ListItems.Count
  10.  If ListView.ListItems(i).Text = strfindtext.Text Then
  11.    MsgBox ListView.ListItem(i).Text & "," & ListView.ListItem(i).SubItems(1) & "," & ListItem(i).SelectedItem.SubItems(2)
  12.  
  13.  End If
  14.  For k = 1 To nColonne
  15.   If ListView.ListItems(i).SubItems(k) = strfindtext.Text Then
  16.   MsgBox ListView.ListItem(i).Text & "," & ListView.listitemItem(i).SubItems(1) & "," & ListView.ListItem(i).SubItems(2)
  17.  
  18.   End If
  19.  Next k
  20. Next i
  21.  
  22. End Sub




Codice sorgente - presumibilmente VB.NET

  1. Public Sub cerca(strfindtext As String)
  2. Dim Itm As ListItem
  3. Set Itm = ListView.FindItem(strfindtext, lvwText, , lvwPartial)
  4. If Not Itm Is Nothing Then
  5. Itm.EnsureVisible
  6. Itm.Selected = True
  7. ListView.SetFocus
  8. Else
  9. MsgBox "Non Trovato!"
  10. End If
  11. End Sub


PM Quote
Avatar
TheLizard (Ex-Member)
Pro


Messaggi: 87
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 17:59
Mercoledì, 06/02/2008
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command5_Click()
  2. Dim i As Long
  3. Dim nColonne
  4. nColonne = listview.ColumnHeaders.Count - 1
  5. For i = 1 To listview.ListItems.Count
  6. If listview.ListItems(i).Text = strfindtext.Text Then
  7.    MsgBox listview.ListItems(i).Text & "," & listview.ListItems(i).SubItems(1) & "," & listview.ListItem(i).SubItems(2)
  8. listview.ListItems(i).EnsureVisible
  9. listview.ListItems(i).Selected = True
  10. listview.SetFocus
  11. End If
  12. For k = 1 To nColonne
  13.   If listview.ListItems(i).SubItems(k) = strfindtext.Text Then
  14.   MsgBox listview.ListItems(i).Text & "," & listview.ListItems(i).SubItems(1) & "," & listview.ListItem(i).SubItems(2)
  15. listview.ListItems(i).EnsureVisible
  16. listview.ListItems(i).Selected = True
  17. listview.SetFocus
  18.   End If
  19. Next k
  20. Next i
  21. End Sub


A me funziona.. spero faccia lo stesso con te :D

PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 18:26
Mercoledì, 06/02/2008
provo subito ! grazie in anticipo

PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 18:43
Mercoledì, 06/02/2008
Grazie funziona! ma c è un problema...

se volessi cercare tutte le ditte impotesi che iniziano per R.  

Mi piacerebbe che la ricerca scrivendo solo R mi desse in lista solo quelle.

Funziona ok, ma se non scrivo esattamente la parola da cercare o gli spazi o i maiuscoli ecc non mi trova nulla.


nel senso. Io ho nella listview parecchie ditte che fanno vari lavori. e ho uno spazio dove li descrivo.

se la ditta rossi fa:  "saldature e pitturazioni"

nella ricerca se scrivo solo "saldature" non mi esce.  

si puo modificare ?


Grazie !

PM Quote