Foros del Web » Programación para mayores de 30 ;) » .NET »

Obtener valores seleccionados ListBox

Estas en el tema de Obtener valores seleccionados ListBox en el foro de .NET en Foros del Web. Hola!! Tengo un problema con un control ListBox. Estoy trabajando con C# y tengo en un formulario un Listbox el cual relleno dinamicamente al cargar ...
  #1 (permalink)  
Antiguo 28/06/2007, 02:30
 
Fecha de Ingreso: febrero-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Obtener valores seleccionados ListBox

Hola!!
Tengo un problema con un control ListBox. Estoy trabajando con C# y tengo en un formulario un Listbox el cual relleno dinamicamente al cargar el form con datos obtenidos de una base de datos.

El problema es que al pulsar un boton necesito obtener los valores seleccionados (el listbox tiene la propiedad de selectionMode=MultiExtended, por lo que pueden haber vaios items seleccionados) para guardarlos en otra tabla de la base de datos, y solo he conseguido obtener el indice de los elementos seleccionados pero no su valor.

Alguien puede ayudarme??

Gracias
  #2 (permalink)  
Antiguo 28/06/2007, 07:20
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Re: Obtener valores seleccionados ListBox

Creo que esto puede ayudarte

listBox1.SelectedItems

Esto retorna una coleccion con los elementos actualmente seleccionados en el listbox, luego debes recorrer esa coleccion para saber cual es cada uno.


Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 29/06/2007, 02:23
 
Fecha de Ingreso: febrero-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Obtener valores seleccionados ListBox

He probado la solución que me propusiste de la siguiente manera:

System.Windows.Forms.ListBox.SelectedObjectCollect ion col = listBox1.SelectedItems;

Pero el problema ahora es que no sé como obtener el valor de cada uno de los elementos de la coleccion. He probado de varias formas:

1- De esta me da un error, no puede convertir un dato de tipo DataRowView en un string:

foreach (string serv in col)
{
MessageBox.Show(serv.ToString());
}

2- De esta lo unico que me muestra en el MessageBox es System.Data.DataRowView

int num = col.Count;
for (int i = 0; i < num; i++)
{
MessageBox.Show(col[i].ToString());
}


La unica forma que he conseguido que se muestren los valores seleccionados ha sido de esta forma, que aunque no es muy 'elegante' por lo menos funciona:

int num = listBox1.Items.Count;
System.Windows.Forms.ListBox.SelectedIndexCollecti on col = listBox1.SelectedIndices;
for (int i = 0; i < num; i++)
{
if (col.Contains(i))
{
MessageBox.Show(listBox1.SelectedValue.ToString()) ;
listBox1.SetSelected(i, false);
}
}

Si supieras la forma de obtener los valores a partir de la coleccion te lo agradecería, si no gracias de todas formas.

Saludos!!
  #4 (permalink)  
Antiguo 29/06/2007, 06:48
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Re: Obtener valores seleccionados ListBox

Como el tedice que tiene un DataRow entoces recorreres ese DataRow, asi:

Código:
 foreach (DataRowView r in lstLotesTX.SelectedItems)
                {
                    MiVariable = MiVariable+ r.Row[0].ToString() + "', '";
                }
Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #5 (permalink)  
Antiguo 02/07/2007, 01:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Obtener valores seleccionados ListBox

Gracias por tu ayuda, de esa forma me funcionó perfectamente
  #6 (permalink)  
Antiguo 02/01/2008, 16:32
 
Fecha de Ingreso: octubre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Obtener valores seleccionados ListBox

private string RecorreNuevosElementosListBox(ListBox lst)
{
int[] intarrayx = lst.GetSelectedIndices();

ArrayList arraylist = new ArrayList();
foreach (int i in intarrayx)
arraylist.Add(lst.Items[i].Value.ToString());

StringBuilder sb = new StringBuilder();
foreach (String element in arraylist)
{
sb.Append("," + element.ToString());
}
_cadena = sb.ToString();
if (this._cadena.Length != 0)
return _cadena = _cadena.Substring(1);
else
return _cadena = "";
}

este es muy buen ejemplo, para el que le pueda servir

obtener indices de un listbox segun orden en que el usuario selecione!! me ayudarian bastante

Última edición por Jorge Mauricio; 02/01/2008 a las 16:45 Razón: preguntar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:49.