• Miércoles 8 de Mayo de 2024, 05:28

Autor Tema:  Devolver un listbox desde una funcion  (Leído 836 veces)

chocvi

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Devolver un listbox desde una funcion
« en: Martes 10 de Noviembre de 2009, 04:06 »
0
Hola. Paso a explicar lo que necesito.

Tengo una funcion en la cual lleno un listbox y necesito que ese listbox lo reciva otro que ya esta creado en el formulario y se vean todos los elementos que este tiene.

He hecho lo siguiente:
Aqui creo una clase en la cual tambien creo la funcion que retorna el listbox

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace Devolver_ListBox
{
class ClaseListBox
{
public ListBox Devolver()
{
ListBox Lista=new ListBox();
Lista.Items.Add("Uno");
Lista.Items.Add("Dos");
Lista.Items.Add("Tres");
return (Lista);
}
}
}

Despues en un formulario en el cual tengo ya creado un control llamado lstLista y un boton en el cual instancio la clase de arriba y luego asigno al lstLista la llamada a funcion Devolver. Si cuento los elementos son tres, si lo recorro con un foreach, me los muestra, pero no se ven en pantalla.

Lo que hice fue lo siguiente, en el boton mostrar:

private void CmdMostrar_Click(object sender, EventArgs e)
{
ClaseListBox Lst = new ClaseListBox();
lstLista = Lst.Devolver();
lstLista.Refresh();
}

Segun yo debio actualizarse tambien en pantalla, pero no lo hizo. Y para comprobar que tenia los elementos, lo recorri con otro boton.

private void cmdRecorrer_Click(object sender, EventArgs e)
{
foreach (string Valor in lstLista.Items)
MessageBox.Show("valor=" + Valor);
}
Aqui efectivamente me muestra los valores de los elementos.

No se que metodo debo usar para que efectivamente pueda ver los elementos en pantalla.

Espero alguien pueda ayudarme.

Saludos a todos y gracias desde ya.

CHOCVI

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Devolver un listbox desde una funcion
« Respuesta #1 en: Martes 10 de Noviembre de 2009, 11:07 »
0
Bueno, alomejor no es lo que buscas pero haber si esto te sirve:

Modifico tu codigo
Código: C#
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Windows.Forms;
  6.  
  7. namespace Devolver_ListBox
  8. {
  9. class ClaseListBox
  10. {
  11. public void Devolver(ListBox lista1)
  12. {
  13. ListBox Lista=new ListBox();
  14. Lista.Items.Add("Uno");
  15. Lista.Items.Add("Dos");
  16. Lista.Items.Add("Tres");
  17. lista1 = Lista;
  18. }
  19. }
  20. }
  21.  
  22.  
  23.  

Código: C#
  1.  
  2. private void CmdMostrar_Click(object sender, EventArgs e)
  3. {
  4. ClaseListBox Lst = new ClaseListBox();
  5. Lst.Devolver(lstLista);
  6. lstLista.Refresh();
  7. }
  8.   
  9.  
  10.  

Si no te funciona o no es lo que buscas, avisa y veremos que podemos hacer

Saludos