none
Limpiar un listbox RRS feed

  • Pregunta

  • hola tengo un problema

    ArrayList listEstudiantes;
            public Form1()
            {
                InitializeComponent();
                listEstudiantes=new ArrayList();
                
            }

            private void agregarEstudianteToolStripMenuItem_Click(object sender, EventArgs e)
            {
                FormAgregaEst form1 = new FormAgregaEst();
                form1.ShowDialog();
                Estudiante nuevEst = form1.GetEstudiante();
                if (nuevEst != null)
                {
                    listEstudiantes.Add(nuevEst);
                    listBoxEstudiantes.DataSource = null;
                    listBoxEstudiantes.DataSource = listEstudiantes;
                    if (listBoxEstudiantes.Items.Count>=5)
                    {
                        listBoxEstudiantes.Items.Clear(); /// aqui manda un error que no puedo utilizar clear cuando ocupo data source
                    }
                }
            }

    mi pregunta es como limpio el listbox

    lunes, 12 de diciembre de 2016 23:55

Respuestas

  • Hola fernanda rosales,

    No bastaría con asignar el valor null a la propiedad DataSource ?

    if (listBoxEstudiantes.Items.Count >= 5)
    {
        listBoxEstudiantes.DataSource = null;
    }


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Propuesto como respuesta dudasc martes, 13 de diciembre de 2016 7:19
    • Marcado como respuesta fernanda rosales miércoles, 14 de diciembre de 2016 0:11
    martes, 13 de diciembre de 2016 0:10
  • Hola fernanda rosales,

    [-] ... si quiero recuperar la información del listbox en un archivo

    Te refieres a crear un archivo de texto (.txt) con los datos del ListBox ? En caso sea correcto puedes hacer uso de la clase File, solo agregarías el : using System.IO;

    private void btnSaveFile_Click(object sender, EventArgs e)
    {
        try
        {
            //Obtenemos la data del DataSource del ListBox
            ArrayList al = listBoxEstudiantes.DataSource as ArrayList;
    
            if (al != null) //Si no es nulo es porque encontró
            {
                string ruta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
                                            "archivo.txt");
    
                //Crea el archivo en la ruta, con el contenido casteado al tipo string
                File.WriteAllLines(ruta, (string[])al.ToArray(typeof(string)));
    
                MessageBox.Show("Archivo creado correctamente!");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    Si no es lo que necesitas agradecería te expliques con más detalle para darte una respuesta acertada.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta fernanda rosales miércoles, 14 de diciembre de 2016 2:07
    miércoles, 14 de diciembre de 2016 1:34

Todas las respuestas

  • Hola fernanda rosales,

    No bastaría con asignar el valor null a la propiedad DataSource ?

    if (listBoxEstudiantes.Items.Count >= 5)
    {
        listBoxEstudiantes.DataSource = null;
    }


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Propuesto como respuesta dudasc martes, 13 de diciembre de 2016 7:19
    • Marcado como respuesta fernanda rosales miércoles, 14 de diciembre de 2016 0:11
    martes, 13 de diciembre de 2016 0:10
  • Muchas gracias me sirvió y otra pregunta si quiero recuperar la información del listbox en un archivo como lo aria 
    miércoles, 14 de diciembre de 2016 0:10
  • Hola fernanda rosales,

    [-] ... si quiero recuperar la información del listbox en un archivo

    Te refieres a crear un archivo de texto (.txt) con los datos del ListBox ? En caso sea correcto puedes hacer uso de la clase File, solo agregarías el : using System.IO;

    private void btnSaveFile_Click(object sender, EventArgs e)
    {
        try
        {
            //Obtenemos la data del DataSource del ListBox
            ArrayList al = listBoxEstudiantes.DataSource as ArrayList;
    
            if (al != null) //Si no es nulo es porque encontró
            {
                string ruta = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
                                            "archivo.txt");
    
                //Crea el archivo en la ruta, con el contenido casteado al tipo string
                File.WriteAllLines(ruta, (string[])al.ToArray(typeof(string)));
    
                MessageBox.Show("Archivo creado correctamente!");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    Si no es lo que necesitas agradecería te expliques con más detalle para darte una respuesta acertada.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta fernanda rosales miércoles, 14 de diciembre de 2016 2:07
    miércoles, 14 de diciembre de 2016 1:34
  • si crear el archivo txt con los datos del listbox 

    private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
            {
                string v;
                openFileDialog1.ShowDialog();
                StreamReader sr = new StreamReader(openFileDialog1.FileName);
                v = sr.ReadToEnd();
                listBoxEstudiantes.Items.Add(v.ToString());
                sr.Close();
            }

            private void guardarToolStripMenuItem_Click(object sender, EventArgs e)
            {
                saveFileDialog1.FileName = "sin nombre";//ya le asigna a la ventana un nombre
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    StreamWriter sw = new StreamWriter(saveFileDialog1.FileName + ".txt");
                    sw.WriteLine(listBoxEstudiantes.Text);
                    sw.Close();
                }
            }

    lo hice de esa forma pero no se porque solo cuando guardo el archivo me gurada solo la primer linea del list boc y no todas

    miércoles, 14 de diciembre de 2016 1:52
  • Hola fernanda rosales,

    Es lógico que te guarde la primera fila, ya que usas un WriteLine, escribirá una línea con el valor del .Text del ListBox. Pienso que en vez de usar el StreamWrite uses el File.

    private void btnSaveFile_Click(object sender, EventArgs e)
    {
        try
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //Obtenemos la data del ListBox
                ArrayList al = listBoxEstudiantes.DataSource as ArrayList;
    
                if (al != null) //Si no es nulo es porque encontró
                {
    
                    //Crea el archivo en la ruta, con el contenido
                    File.WriteAllLines(saveFileDialog1.FileName, (string[])al.ToArray(typeof(string)));
    
                    MessageBox.Show("Archivo creado correctamente!");
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    Ya que los datos están enlazados al DataSource solo harías un Cast al tipo ArrayList y enviarlo como valor al crear el archivo. De la misma manera al querer obtener los valores del .txt usarías File.ReadAllLines.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 14 de diciembre de 2016 2:24