Newsgroup: it.comp.lang.visual-basic
Titolo: problema ListBox

ciao a tutti,
ho una listbox con i checkbox.
sto cercando di rimuovere gli elementi selezionati cliccando un pulsante.
Ho creato un ciclo FOR ma qualcosa non funge...
qualcuno ha un pezzetto di codice da mandarmi?

 ha scritto nel messaggio
news:AXrH8.82418$CN3.2...@news2.tin.it...

Sarebbe meglio il contrario, per lo meno a grandi linee, cosi' si vede dove
e' il tuo problema...
In ogni caso la faccenda dovrebbe risolversi semplicemente con qualcosa del
genere:
If List1.SelCount > 0 Then
    For i = 0 to List1.ListCount -1
        List1.Selected(i) = False
    Next
End If
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 ha scritto nel messaggio
news:aclj9h$pkj5e$1...@ID-138791.news.dfncis.de...


     For i = 0 To List1.ListCount - 1
Prova con:
For i = List1.ListCount - 1 to 0 step -1
Cercando nei post passati avresti trovato sicuramente la soluzione ...
group.google.com
 !!!!
ciao
		maxx

     End If
cercherò di essere chiaro
supponi di avere 10 item
nella riga for i... listcount=9
bene
quando elimini un item il listcount diminuisce di 1 ma il valore di I del
ciclo è ancora 9 e quindi
vb va in palla perchè l'item successivo non esiste..
ciao
_pixel_
p.i....@katamail.com
http://vbios.cjb.net

 ha scritto nel messaggio
news:wFsH8.1681$ie.2...@twister2.libero.it...


mi sembra che l'abbiano già data... :-)


 ha scritto nel messaggio
news:7QsH8.1738$ie.2...@twister2.libero.it...


for i=list1.listcount-1 to 0 step -1
....
next i


 ha scritto nel messaggio
news:C%sH8.1578$8x3....@twister1.libero.it...


 next i
Cosi' scatenerai l'ennesimo FLAME ...
Gli ho dato io la risposta esplicita e tu implicita prima ...
Lo sforzo di leggere tutti i messaggi di un thread sarebbe apprezzato.
Vero Tex!!
	maxx

     Next


     End If
Ho capito male io; credevo volessi togliere solo il segno di spunta, non
cancellare del tutto l'elemento dalla lista...
Il problema allora e' un'altro
il codice sta indicando al programma di fare un ciclo dal primo all'ultimo
*indice* di elemento, utilizzando correttamente la property ListCount; se
pero' effettui una rimozione dalla lista all'interno del ciclo stesso,
implicitamente stai creando un disallineamento tra il numero di iterazioni
da fare e il numero reale di elementi in lista, ti faccio un esempio
pratico:
'Lista con 5 elementi, di cui i primi 2 selezionati
If List1.SelCount > 0 Then
    For i = 0 To List1.ListCount - 1
        If List1.Selected(i) Then List1.RemoveItem i
    Next
End If
dopo le prime due iterazioni hai cancellato due righe, e listcount ora vale
3; siccome pero' gli indici di confronto del for vengono valutati
*all'inizio* del ciclo, il codice effettuera' comunque le iterazioni 3, 4, e
5, e andra' in errore quando verra fatto l'accesso all'elemento (ormai
inesistente) 4.
Dopo tutta questa sbrodolatura :-) giusto per farti capire, la soluzione e'
comunque semplice: fare un ciclo a ritroso, dall'ultimo al primo
If List1.SelCount > 0 Then
    For i = List1.ListCount - 1 to 0 Step -1
        If List1.Selected(i) Then List1.RemoveItem i
    Next
End If
e tutto fila liscio


io l'avevo scritto.... ma che ci vuoi fare...
sono un'anima buona...


     Next
Scusa, non facevi prima a dire:
Non spiegatemi niente, non voglio capire dov'è il problema, voglio solo che
mi diate il codice da copiare ed incollare nel mio applicativo.
Comunque devi mettere:
     For i = List1.ListCount - 1 To 0 Step -1
         if List1.Selected(i) then List1.RemoveItem i
     Next
Alberto

 > proprietą non valido


Elucubravo in letizia, quando udii Tex sostenere...

Allora...
dim iNumeroElementi as integer
dim iContatore as integer
iContatore=1
With ListBox
  iNumeroElementi = .ListCount
  Do Until iContatore >iNumeroElementi
    If .Selected(iContatore) then
      .Remove (iContatore)
      iNumeroElementi = iNumeroElementi - 1 
    Else
      iContatore = iContatore + 1
    End If
  Loop
End With
Dovrebbe essere abbastanza chiaro.
-- 
Bye by SixaM 8-]
-----------------------------
Sito comune: 
www.it-lang-vb.net