Principales respuestas
Limpiar un listbox

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
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
-
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
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
-
-
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
-
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
-
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