none
Recorrer items de un ListView

    Pregunta

  • Hola a todos! Resulta que estoy trabajando con el control ListView, en el cual el usuario puede ir agregando/borrando Items a elección. Pero al terminar necesito recorrer todos los Items del control y guardarlos en un archivo de texto. El problema surge que no me doy idea de como hacerlo en Visual C++.

    Por ejemplo, cuando el usuario selecciona un Item para ser borrado hago lo siguiente:

    ListView::SelectedListViewItemCollection^ ItemSeleccionado=this->lb_ListaCurvas->SelectedItems;
    System::Collections::IEnumerator^ MyEnum = ItemSeleccionado->GetEnumerator();
    
    			 
    while(MyEnum->MoveNext()){			 
    	ListViewItem^ Item = safe_cast<ListViewItem^>(MyEnum->Current);			
    	Item->Remove();
    }
    

    Pero al momento de recorrer toda la lista sin que el usuario seleccione nada, no se me ocurre como hacerlo. ¿Como ir seleccionando cada Item?

     

    Saludos!

     


    www.micros-designs.com.ar
    viernes, 17 de diciembre de 2010 14:56

Todas las respuestas

  • Además, creo que se pueden acceder por índice, algo así (escrito de memoria):

    for(int i=0;i<lb_ListaCurvas->Items->Count;i++)
    {
      //Hacer lo que haya que hacer con cada lb_ListaCurvas->Items[i]
    }
    
    
    http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.listviewitemcollection.aspx

    Evidentemente es menos OO que usar un iterator, aunque a mi modo de ver es que es menos "fashion" que otra cosa, pero clara, mucho más.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/

    • Editado RFOGModerator viernes, 17 de diciembre de 2010 17:38 añadir
    viernes, 17 de diciembre de 2010 17:37
    Moderador
  • Muchas gracias a ambos! En algún momento había intentado acceder mediante Items[i], había obtenido un error al compilar y lo descarte. :( Pero realmente funciona, por ejemplo accedo a cada uno de los parámetros de los items de la siguiente manera:

     

    lb_ListaCurvas->Items[0]->SubItems[0]->Text;

     

    Nuevamente muchas gracias!

     

    Saludos!


    www.micros-designs.com.ar
    viernes, 17 de diciembre de 2010 20:55