Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455

    [VB.NET] Inserire items in una listbox

    Ciao a tutti,
    Ho due listbox, devo fare in modo che tutti gli items della prima listbox che non sono presenti nella seconda listbox vengano inseriti nella seconda listbox.

    il codice è questo:

    codice:
            For i As Integer = 0 To ListBox1.Items.Count - 1
                For j As Integer = 0 To ListBox2.Items.Count - 1
                    If ListBox1.Items(i) IsNot ListBox2.Items(j) Then
                        ListBox2.Items.Add(ListBox1.Items(i))
                        ListBox1.Items.RemoveAt(i)
                    End If
                Next
            Next
    Il codice non funziona da errore sugli indici ed inoltre inserisce tutti quanti gli items

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La if è sbagliata. Devi confrontare gli items, totalmente o parzialmente.

    La RemoveAt non va fatta all'interno del ciclo, altrimenti l'indice finale varia.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Che intendi per confrontare gli items totalmente o parzialmente?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Facciamo così ... guarda questo ...

    codice:
            Dim bF As Boolean
    
    
            For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
                bF = False
                For j As Integer = 0 To ListBox2.Items.Count - 1
                    If ListBox1.Items(i).ToString() = ListBox2.Items(j).ToString() Then
                        bF = True
                        Exit For
                    End If
                Next
                If Not bF Then
                    ListBox2.Items.Add(ListBox1.Items(i))
                    ListBox1.Items.RemoveAt(i)
                End If
            Next
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Facciamo così ... guarda questo ...

    codice:
            Dim bF As Boolean
    
    
            For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
                bF = False
                For j As Integer = 0 To ListBox2.Items.Count - 1
                    If ListBox1.Items(i).ToString() = ListBox2.Items(j).ToString() Then
                        bF = True
                        Exit For
                    End If
                Next
                If Not bF Then
                    ListBox2.Items.Add(ListBox1.Items(i))
                    ListBox1.Items.RemoveAt(i)
                End If
            Next
    Grazie mille

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.