+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Selezionare il check della listview in base a mese e anno

  1. #1
    gnappi non è in linea Novello
    Luogo
    Roma
    Post
    25

    Selezionare il check della listview in base a mese e anno

    Ho una listview con checkbox popolato da una grossa quantità di dati.
    Ho la necessità di mettere in blocco il segno di spunta su vari items, anzichè passarmeli tutti in rassegna.
    Come fare?
    ListView1.Items(x).Checked = True mi seleziona logiacamente tutti gli items!

    codice:
        Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            If anno.Text.Length = 0 And mese.Text.Length = 0 Then
                MessageBox.Show("Valorizzare anno oppure anno e mese da selezionare")
            ElseIf mese.Text.Length > 0 And anno.Text.Length > 0 Then
                MessageBox.Show("Valorizzare l'anno di riferimento")
            End If
            Dim x As Integer = 0
            For Each item As ListViewItem In ListView1.Items
                Dim _anno As Integer = ListView1.Items(x).SubItems(2).Text
                Dim _mese As Integer = ListView1.Items(x).SubItems(3).Text
                If ListView1.Items(x).SubItems(2).Text = _anno And ListView1.Items(x).SubItems(3).Text = _mese Then
                    ListView1.Items(x).Checked = True
                End If
                x += 1
            Next
        End Sub

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    17,049
    Blogs
    5
    Vari item quali??
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    L'avatar di _alka_
    _alka_ ora è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,310
    Quote Originariamente inviato da gnappi Visualizza il messaggio
    Ho la necessità di mettere in blocco il segno di spunta su vari items, anzichè passarmeli tutti in rassegna.
    Non vedo altri modi per mettere la spunta sugli elementi, se non quello di apporla elemento per elemento se la condizione lo permette.

    Quote Originariamente inviato da gnappi Visualizza il messaggio
    Come fare?
    ListView1.Items(x).Checked = True mi seleziona logiacamente tutti gli items!
    Ti seleziona l'elemento corrispondente alla posizione "x".

    Secondo me, conviene che tu descriva meglio il problema, perché assolutamente non è chiaro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  4. #4
    patel45 non è in linea Scolaretto Ultimo blog: recupero dati da pagina html
    Post
    458
    Blogs
    1
    gnappi, non ha senso fare un ciclo For Each item e poi non usare item e incrementare la x, o fai un ciclo for x o lo fai For Each item.

  5. #5
    L'avatar di _alka_
    _alka_ ora è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,310
    Quote Originariamente inviato da patel45 Visualizza il messaggio
    gnappi, non ha senso fare un ciclo For Each item e poi non usare item e incrementare la x, o fai un ciclo for x o lo fai For Each item.
    Pensa che io non ci avevo nemmeno fatto caso...
    Ma concordo, ovviamente.

    Inoltre, secondo me c'è qualcosa di strano anche nei controlli preventivi, quelli posti prima del ciclo, ma è solo una supposizione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    17,049
    Blogs
    5
    La spiegazione del problema è veramente poco chiara. Probabilmente voleva solo mettere il check a tutti gli elementi e basterebbe

    codice:
            For Each it In ListView1.Items
                it.checked = True
            Next
    Attendiamo ...
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  7. #7
    gnappi non è in linea Novello
    Luogo
    Roma
    Post
    25
    Grazie a tutti voi per avermi dato un pò di attenzione.
    Ho provato con con un ciclo for (For x = 0 To ListView1.Items.Count) che con For each (For Each item As ListViewItem In ListView1.Items)oi, con il copia ed incolla ho fatto un gran casino!

    Ripropongo il codice e preciso che il mio obiettivo è quello che (fornito mese ed anno oppure solo l'anno) mi vengano selezionate solo le righe della LV che contengano (ad esempio) il mese 5 dell'anno 2020.Contrariamente, sarei costretto ad esaminare una per una tutte le righe della LV ed effettuare manualmente la selezione.
    Spero di aver chiarito e ringrazio chiunque mi sappia suggerire una strada che mi conduca al risultato sperato.
    codice:
        Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            If anno.Text.Length = 0 And mese.Text.Length = 0 Then
                MessageBox.Show("Valorizzare solo anno oppure anno e mese")
            ElseIf anno.Text.Length = 0 And mese.Text.Length > 0 Then
                MessageBox.Show("Valorizzare l'anno di riferimento")
            End If
            
            For x as integer= 0 To ListView1.Items.Count
                'For Each item As ListViewItem In ListView1.Items
                Dim _anno As Integer = ListView1.Items(x).SubItems(2).Text
                Dim _mese As Integer = ListView1.Items(x).SubItems(3).Text
                If ListView1.Items(x).SubItems(2).Text = _anno And ListView1.Items(x).SubItems(3).Text = _mese Then
                   .......
                End If
            Next
        End Sub

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    17,049
    Blogs
    5
    Usa la For Each e controlla mese e anno per fare il check (potevi chiarirlo prima questo requisito)

    codice:
            For Each it In ListView1.Items
                 If .... Then
                     it.checked = True
                 End If
            Next
    Nella If controlli quello che ti serve, con o senza And (non ho capito se ti serve anno e mese o solo anno)
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  9. #9
    gnappi non è in linea Novello
    Luogo
    Roma
    Post
    25
    Grazie mille. Ora ci provo e poi riferirò l'esito.

  10. #10
    gnappi non è in linea Novello
    Luogo
    Roma
    Post
    25
    Grazie.Ho finalmente risolto grazie al Suo input.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi