如何清空listBox中的所有数据?

22

我需要一条语句来清空当前在listBox中的所有字符串/数据,我已经尝试过:

private void cleanlistbox(object sender, EventArgs e)
{
    listBox1.ResetText();
}

12
有6个回答,且都相同。应该有一个“参加合唱团”的徽章。 :-) - Wouter van Nifterick
11个回答

66

那么呢?

listbox1.Items.Clear();

1
哈哈,我应该自己想到那个的 :( - Mike
1
恭喜您获得了首个“优秀答案”徽章! - Yuck
@Yuck - 谢谢,我很惊讶我是第一个回答的。 - Ash Burlaczenko
如果设置了DataSource,这个方法就不起作用了。可悲的是,清除DataSource(在我的情况下是BindingList)也不起作用。 - undefined

10

如果它与数据源绑定,使用 ListBox1.Items.Clear(); 将会抛出一个错误。

在这种情况下,你需要清除数据源。例如,如果它被填充了一个 Datatable:

  _dt.Clear();   //<-----Here's the Listbox emptied.
  _dt = _dbHelper.dtFillDataTable(_dt, strSQL);

  lbStyles.DataSource = _dt;
  lbStyles.DisplayMember = "YourDisplayMember";
  lbStyles.ValueMember = "YourValueMember";

我不得不将DataSource设置为null,然后再设置为我的列表,否则它无法捕捉到列表中的更改。 - jacob.mccrumb

8

试试这个:

 private void cleanlistbox(object sender, EventArgs e)
  {
     listBox1.DataSource = null;
     listBox1.Items.Clear();
  }

7
private void cleanlistbox(object sender, EventArgs e)
{
    listBox1.Items.Clear();
}

6
这应该可以工作:
listBox1.Items.Clear();

5

这应该可以工作:

private void cleanlistbox(object sender, EventArgs e)
{
    listBox1.Items.Clear( );
}

4
请使用以下内容:
listBox1.Items.Clear();

3

尝试

private void cleanlistbox(object sender, EventArgs e)
{
   ListBox1.Items.Clear();
}

1
如果您将CListBox用作指针(*),请使用以下代码: pList1->ResetContent();

0

如果您的列表框连接到数据源列表,则listbox.Items.Clear()将不起作用。

我通常创建一个名为“DataAccess.cs”的文件,其中包含一个单独的类,用于处理与我的表单相关的数据的代码。以下是DataAccess类的代码片段,用于清除或删除列表"exampleItems"中的所有项目。

public List<ExampleItem> ClearExampleItems()
       {
           List<ExampleItem> exampleItems = new List<ExampleItem>();
           exampleItems.Clear();
           return examplelistItems;
        }

ExampleItem也在一个名为"ExampleItem.cs"的单独类中。

using System;

namespace        // The namespace is automatically added by Visual Studio
{
    public class ExampleItem
    {
        public int ItemId { get; set; }
        public string ItemType { get; set; }
        public int ItemNumber { get; set; }
        public string ItemDescription { get; set; }

        public string FullExampleItem 
        {
            get
            {
                return $"{ItemId} {ItemType} {ItemNumber} {ItemDescription}";
            }
        }
    }
}

在您的窗体代码中,以下代码片段引用了您的列表框:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Windows.Forms;

namespace        // The namespace is automatically added by Visual Studio
{
    
    public partial class YourFormName : Form
    {
        
        List<ExampleItem> exampleItems = new List<ExampleItem>();

        public YourFormName()
        {
            InitializeComponent();

            // Connect listbox to LIST
            UpdateExampleItemsBinding();
        }

        private void UpdateUpdateItemsBinding()
        {
            ExampleItemsListBox.DataSource = exampleItems;
            ExampleItemsListBox.DisplayMember = "FullExampleItem";
        }

        private void buttonClearListBox_Click(object sender, EventArgs e)
        {
            DataAccess db = new DataAccess();
            exampleItems = db.ClearExampleItems();
            
            UpdateExampleItemsBinding();
        }
    }
}

这个解决方案特别针对一个Windows表单的列表框,其数据源连接到一个列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接