2012-02-02 35 views
2

这是一个相当简单的问题 - 但它迄今为止还是击败了我。无法清除Winforms-ListBox

我在窗体上有两个列表框。当用户单击第一个框中的项目时,第二个列表框将填充相关的值。但是有时我以后想要清除第二个列表框,使其再次显示为空。

但是,有下列情形的似乎工作:

lbxQuantity.Items.Clear(); 
lbxQuantity.DataSource = null; 
lbxQuantity.Text = ""; 

我如何彻底清除所有值的列表框,并让它空白?

列表框位于WinForms应用程序广告中我想添加一个按钮来清除表单上的所有列表框。

+2

在哪些情况下您是否清除物品?尝试在列表框 - 预渲染或页面预渲染 – zdrsh 2012-02-02 07:45:47

+1

'检查页面加载事件,你不绑定数据源与列表框there.if然后检查postbacks'。如果要清除所有项目,则不需要将数据源设置为null。但是,必须在清除项目后使用work.try进行绑定。 – joshua 2012-02-02 07:48:53

+2

@Madhav:它也可能是[Winforms-ListBox](http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.aspx),因为它不清楚问题。 – 2012-02-02 07:54:41

回答

6

这取决于您使用哪种方法来填充ListBox

  • 如果您通过致电listBox.Items.Add手动添加项目,则可以通过listBox.Items.Clear将其清除。
  • 如果通过DataSource,DisplayMember和ValueMember属性填充它,则可以设置DataSource = null,然后在DataSource为空时在DataSourceChanged事件处理函数中调用listBox.Items.Clear。你当然也可以在空值赋值后立即执行。

您看到的行为的另一种可能性可能是,只要删除所有项目,列表框就会通过某些事件重新填充到您自己的代码中。

+0

链接切换到的页面似乎不再存在。 – Cornelis 2017-05-19 08:21:51

+0

我删除了链接 – Andreas 2017-05-20 08:53:43