Miten saisin poistettua list1 olevan valitun kohdan?
Tällä lailla jo yritin:
List1.RemoveItem Selected
Tuossa on vikana se että se poistaa ylimmän eikä valittua.
List1.RemoveItem List1.ListIndex
List1.ListIndex siis palauttaa valitun kohdan numeron (-1)
Entä miten saisin tyhjättyä koko list boxin?
For i = 1 To List1.ListCount List1.RemoveItem(i)'tämä kohta bugaa Next
Kaikkein helpoiten tyhjennys käy näin:
'listan tyhjennys, osa 1 List1.Clear
Tutkitaan kuitenkin vielä, mikä koodissasi oli vikana. For-silmukan väli ei ole oikea, koska listan ensimmäisen rivin indeksi on 0, ja viimeisen rivin indeksi on yhtä pienempi kuin listan rivien määrä. Tämä korjaus ei kuitenkaan yksinään riitä. Jos rivien poistamisen aloittaa ylimmästä, niin silloinhan kaikki muut rivit liikkuvat yhden askeleen ylöspäin ja samalla indeksit muuttuvat. Siksi rivit täytyy poistaa käänteisessä järjestyksessä tai sitten niin, että joka kerta poistetaan ylin rivi.
'listan tyhjennys, osa 2 For i = List1.ListCount - 1 To 0 Step -1 List1.RemoveItem i Next 'listan tyhjennys, osa 3 For i = 1 to List1.ListCount List1.RemoveItem 0 Next
Aihe on jo aika vanha, joten et voi enää vastata siihen.