Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252

    [VB2010 winform] ricerca dati in listview

    scusate ma non riesco a risolvere questa cavolata ma proprio non mi torna

    devo verificare se un valore è già nella lista

    io ho provato così ma non mi va

    valore = luca
    ris = FrmFondo.ListaPortieri.Items.Find(valore, vbYes)
    if ris = true then
    msgbox ("nome trovato")
    else
    msgbox ("nome non trovato")
    end if


    a me restituisce sempre false anche se il nome c'è
    possibile che devo specificare dove ricercare?? o cerca in tutte le colonne della list????

    grazie

  2. #2
    Il metodo Find non restituisce un boolean, bensì un array di oggetti ListViewItem che hanno la proprietà Name uguale al parametro key passato col metodo.

    http://msdn.microsoft.com/query/dev1...ng-VB)&rd=true
    Chi non cerca trova.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    si infatti ho scritto una cosa per un altra perchè stavo provando anche con il ContainsKey che restituisce il boolean.

    ma nel caso del find non riesco a capire come sapere se è piena o vuota
    e la proprietà name???????!!!! booohh
    per il containskey ... è quello che mi da sempre "false"

    sia che la list è vuota sia che è piena....


    mi fai un esempio pratico per favore

    grazie

  4. #4
    Potrebbe essere così:
    codice:
            Dim i() As ListViewItem = ListView1.Items.Find("buffon", False)
            If i.Length > 0 Then
                Console.WriteLine(i(0).Name)
            End If
    Chi non cerca trova.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    non mi funziona cmq per lui i() è sempre uguale a 0 e quindi mi aggiunge sempre una riga.
    codice:
     Dim i() As ListViewItem = frmfondo.listaportieri.find("buffon", False)
            If i.Length > 0 Then
                msgbox ("Già acquistato")
                Exit sub
             else
                msgbox(ottimo acquisto")
            End If
    questo è il tuo esempio riportato modificato per me ma non va cmq è sempre zero il valore. come se non trovasse mai il giocatore.
    ho provato anche questo

    codice:
           
     Dim nomegiocatore As String = Selezionato.SubItems(1).Text 'nome del giocatore
            Dim portieri = FrmFondo.ListaPortieri.Items.ContainsKey(nomegiocatore) 'restituisce un boolean
            If portieri = True Then
                MsgBox("già acquistato")
                Exit Sub
            Else
                MsgBox("ottimo acquisto")
            End If
    ....
    in tutti e due i casi è come se non leggesse dalla mia lista giocatori.
    in realtà io il nome nella lista lo vedo scritto.

  6. #6
    Bisognerebbe vedere come carichi la listview. Il metodo Find non cerca il valore nel testo visualizzato dal controllo ma nella proprietà Name di ogni ListViewItem.
    Chi non cerca trova.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    la lista dei portieri la carico così!

    codice:
     FrmFondo.ListaPortieri.Items.Add(Selezionato)
    considerando che "selezionato" è una listviewitem

    Dim Selezionato As New ListViewItem

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.