none
como eliminar una fila en un listview c# en visual studio 2008 RRS feed

  • Pregunta

  • actualmente me encuentro desarrollando una aplicación para un dispositivo captador de codigos de barra que funciona con windows CE. por lo cual debo utilizar visual estudio 2008.

    el dispositivo captura un codigo de barra y lo guarda en un listview pero necesito poder eliminar una fila de ese listview cuando el usuario seleccione un dato dentro de esta y al apretar el boton eliminar me borre la fila seleccionada.

    actualmente este es mi codigo.

    private void btEliminar_Click(object sender, EventArgs e)
            {
                foreach (ListViewItem item in lvlInfo.Items)
                {
    
                    if (txtFolio.Text.Trim().Length == 0)
                    {
                         MessageBox.Show("Debe seleccionar item");
                    }
                    else
    
                        lvlInfo.Items.Remove();
    
                    }                        
                    
                }

    me marca error.


    Error 1 Ninguna sobrecarga para el método 'Remove' acepta '0' argumentos.
    martes, 9 de abril de 2019 13:44

Respuestas

Todas las respuestas

  • aquí te mando un ejemplo, adáptalo a lo que tienes

    private void button2_Click(object sender, EventArgs e)
    {
        if (listView1.SelectedItems != null)
        {
            var message = MessageBox.Show(
                "Desea eliminar los elementos seleccionados?",
                "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question
            );

            if (message == DialogResult.Yes)
            {
                for (int i = 0; i < listView1.Items.Count; i++)
                {
                    if (listView1.Items[i].Selected)
                    {
                        listView1.Items[i].Remove();
                        i--;
                    }
                }
            }
        }
        else
        {
            MessageBox.Show("Debes sellecionar al menos un elemento", "Error",
                MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

    espero te sirva..si t e sirve no t eolvides de proponerlo y marcarlo como respuesta

    saludos

    • Propuesto como respuesta Carlos_Ruiz_M martes, 9 de abril de 2019 15:30
    martes, 9 de abril de 2019 13:58
  • me marca 2 errores de falta una directiva de uso o una referencia de ensamblado.  en la linea de codigo listView1.SelectedItems != null y en la linea de codigo listView1.Items[i].Remove();
    martes, 9 de abril de 2019 14:08
  • debe ser por la diferencia de visual studio..yo tengo 2012, pero eso no debe tener problemas

    abre un proyecto nuevo de windows form y prueba esto

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                listView1.Items.Add(new ListViewItem("Hola"));
            }

            private void button2_Click(object sender, EventArgs e)
            {
                if (listView1.SelectedItems != null)
                {
                    var message = MessageBox.Show(
                        "Desea eliminar los elementos seleccionados?",
                        "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question
                    );

                    if (message == DialogResult.Yes)
                    {
                        for (int i = 0; i < listView1.Items.Count; i++)
                        {
                            if (listView1.Items[i].Selected)
                            {
                                listView1.Items[i].Remove();
                                i--;
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Debes sellecionar al menos un elemento", "Error",
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
    }

    • Propuesto como respuesta Carlos_Ruiz_M martes, 9 de abril de 2019 15:30
    martes, 9 de abril de 2019 14:18
  • en visual 2008 el  using System.Threading.Tasks; no existe.
    martes, 9 de abril de 2019 14:24
  • quitalo, que ese yo lo tengo deshabilitado...no tiene nada que ver
    martes, 9 de abril de 2019 14:29
  • lo solucione de la siguiente manera:

    for (int i = lvlInfo.SelectedIndices.Count - 1; i >= 0; i--)
                {
                    lvlInfo.Items.RemoveAt(lvlInfo.SelectedIndices[i]);
                   
                }

    martes, 9 de abril de 2019 15:11
  • Asi tambien es valido..me alegro de que hayas resuelto
    martes, 9 de abril de 2019 16:07