• Domingo 22 de Diciembre de 2024, 14:36

Autor Tema:  mostrar un objeto en un listbox  (Leído 4940 veces)

angel_78

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
mostrar un objeto en un listbox
« en: Miércoles 16 de Marzo de 2011, 20:22 »
0
Hola a todos!!!
Necesito de su valiosisima ayuda....
Resulta que estoy haciendo un programa en Visual con C#, y resulta que en el tengo un listBox y como elementos le agrego una clase, hasta ahi no tengo problema, puedo manipular lo elementos, agregarlos, eliminarlos, hacer doble clic y todo eso. El problema que tengo y por el cual escribo es porque no puedo desplegar una de las variables de la clase en el listBox, en lugar de eso por cada elemento me aparece Program.Clase, no se si me explique, lo que hago es lo siguiente:

ProgramaPrincipal
....
MiClase miclase=new MiClase();
listBox.Items.Add(miclase);
...

en MiClase, tengo una variable string nombre, y ese valor es el que quiero que se vea en el listBox....

he probado con DisplayMember y con ValueMember, pero no tengo el resultado deseado.....

Por favor ayuda.... :(

Josselo

  • Miembro activo
  • **
  • Mensajes: 50
  • Nacionalidad: pe
    • Ver Perfil
    • iJS Recursos web ilimitados
Re: mostrar un objeto en un listbox
« Respuesta #1 en: Miércoles 16 de Marzo de 2011, 21:36 »
0
listbox.Item.add(miclase.nombre);

angel_78

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #2 en: Miércoles 16 de Marzo de 2011, 21:58 »
0
Nop... ya probe con eso tambien y lo unico que hace de esa manera es agregar el nombre como elemento, pero yo necesito tener toda la clase en la lista y solo ver el nombre...

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #3 en: Jueves 17 de Marzo de 2011, 15:18 »
0
Código: C#
  1.  
  2. ListViewItem _item = new ListViewItem();
  3. _item.SubItems[0].Text = MiClase.Nombre;
  4. _item.SubItems.Add(MiClase.Numero);
  5. this.ListBox1.Items.Add(_item);
  6. this.ListBox1.DisplayMember = _item.SubItems[0].Text;
  7. this.ListBox1.ValueMember = _item.SubItems[1].Text;
  8.  
  9.  


Yo usaria un ListView, en vez de un ListBox... pero bueno.. como tu elijas. :)... saludos..
@gabio87

angel_78

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #4 en: Jueves 17 de Marzo de 2011, 17:20 »
0
Gracias Gabio por la sugerencia, ya habia probado tambien con ListViewItem... pero ya quedo ... les comento como fue que lo solucione, con
public override string ToString()
{
     return Nombre;
}

en mi clase...

Nuevamente agradezco por sus comentario... ;)

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #5 en: Viernes 18 de Marzo de 2011, 18:49 »
0
Que tal angel_78, me podrias explicar digo si no es mucha molestia como funciona.. el public override string ToString() .....
no había visto alguna referencia sobre ese tema...  gracias de antemano..
@gabio87

angel_78

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #6 en: Viernes 18 de Marzo de 2011, 19:30 »
0
Hola Gabio....
Intente pasar la liga en  cual esta la información del override, pero no tengo permisos para enviar ligas.
pero te comento que en la página de msdn de microsoft com en el tema de Polimorfismo viene la mensión del override y como se puede utilizar.

(Te paso la liga en la cual esta la información del override:  aqui estaba el link
Incluso ahi encontre un ejemplo y me base en el para poder solucionar el problemilla que tenia.)

Saludos.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #7 en: Viernes 18 de Marzo de 2011, 19:57 »
0
Muchassss gracias. :D ya lo cheque..
@gabio87

morringos

  • Miembro activo
  • **
  • Mensajes: 65
  • Nacionalidad: 00
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #8 en: Viernes 18 de Marzo de 2011, 20:03 »
0
Parece ser que tu problema era precisamente de encapsulamiento, de seguro tenías el el campo "nombre" como private ó simplemente "string nombre" el cual, por default, es privado también, lo pudiste haber arreglado atenponiéndole la palabra clave "public" antes de string.

En cuanto al override para la clase, es sobreescribir el método virtual que la clase "MiClase" y todas las demás clases heredan, recordando que la clase padre de todas, es la clase Object.

Saludos.  ^_^


angel_78

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: mostrar un objeto en un listbox
« Respuesta #9 en: Viernes 18 de Marzo de 2011, 22:48 »
0
Pues realmente estoy iniciando en este mundo y es muy interesante... tendre que estudiarle mas y seguir en estos foros que aportan mucho.... :D

Saludos...