none
Cómo eliminar los items seleccionados en un checklistbox RRS feed

  • Pregunta

  • Hola. Tengo un problemita. En un checklistbox deseo eliminar los items que selecciono, pero cuando el conteo llega al ultimo item me muestra este error: Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index
    Creo que podria arreglarlo si hago un refresh del checklist pero no se como hacerlo, si alguien podria ayudarme a hacerlo a o mejorar este procedimiento le estare muy agrececido, aqui les dejo el ciclo for.


    Dim a As Integer
            For a = 0 To CheckBox_agregados.Items.Count - 1
                If CheckBox_agregados.Items(a).Selected = True Then
                    CheckBox_agregados.Items.Remove(CheckBox_agregados.Items(a))

                End If
            Next


    miércoles, 27 de enero de 2010 20:18

Respuestas

  • mira lo que puedes hacer es que haga el conunt inversamente con eso nunca lee un indice que este por fuera:

            Dim a As Integer
            For a = CheckBoxList1.Items.Count - 1 To 0 Step -1
                If CheckBoxList1.Items(a).Selected = True Then
                    CheckBoxList1.Items.Remove(CheckBoxList1.Items(a))
                End If
            Next
    Saludos


    Robinson Moscoso Pérez
    Bogotá - Comlombia
    ------------------
    Si la respuesta te ha ayudado, márcala.
    • Propuesto como respuesta Jose Elias miércoles, 27 de enero de 2010 20:44
    • Marcado como respuesta Francisco Raul miércoles, 27 de enero de 2010 21:00
    miércoles, 27 de enero de 2010 20:40

Todas las respuestas

  • hola ...
    o podrias validar preguntando  con el .count es >0 entonces sigues borrando caso contrario no haces nada,,,,
    Pablo González Desarrollo de Sistemas. Ecuasoftware.Net Ecuador.
    miércoles, 27 de enero de 2010 20:31
  • Gracias Jose elias. Pero al dejar solo este codigo solamente me elimina uno a la vez  y no todos los seleccionados a un mismo tiempo.
    miércoles, 27 de enero de 2010 20:32
  • mira lo que puedes hacer es que haga el conunt inversamente con eso nunca lee un indice que este por fuera:

            Dim a As Integer
            For a = CheckBoxList1.Items.Count - 1 To 0 Step -1
                If CheckBoxList1.Items(a).Selected = True Then
                    CheckBoxList1.Items.Remove(CheckBoxList1.Items(a))
                End If
            Next
    Saludos


    Robinson Moscoso Pérez
    Bogotá - Comlombia
    ------------------
    Si la respuesta te ha ayudado, márcala.
    • Propuesto como respuesta Jose Elias miércoles, 27 de enero de 2010 20:44
    • Marcado como respuesta Francisco Raul miércoles, 27 de enero de 2010 21:00
    miércoles, 27 de enero de 2010 20:40
  • muchsimas gracias Robinson Moscoso, me suluciono el problema te lo agradezco mucho, saludos.
    miércoles, 27 de enero de 2010 21:00