如何清除ListBox的列表項(xiàng)(刪除所有項(xiàng)目), 今天開發(fā)程序時(shí),有嘗試使用此功能。一開始并不是很順利。循環(huán)所有item去做remove時(shí),需要執(zhí)行兩次才可以完成清除。debug進(jìn)行步進(jìn)跟蹤,發(fā)現(xiàn)在Listbox.Items.Count 每移除一個(gè),Count隨之減少,而Capacity并沒有作相應(yīng)變化。
在網(wǎng)上搜索相關(guān)資料,相當(dāng)多用戶有相同要求,一次移除ListBox的列表所有項(xiàng)。方法均是用:
復(fù)制代碼 代碼如下:
for (int i = 0; i Listbox1.Items.Count; i++)
{
Listbox1.Items.RemoveAt(i);
}
或者:
復(fù)制代碼 代碼如下:
foreach (ListItem li in ListBox1.Items)
{
ListBox1.Items.Remove(li);
}
而后者會(huì)出現(xiàn)異常: Collection was modified; enumeration operation may not execute.
不管怎樣,下面是Insus.NET的解決方法,寫一個(gè)迭代器:
復(fù)制代碼 代碼如下:
private void IterationRemoveItem(ListBox listbox)
{
for (int i = 0; i listbox.Items.Count; i++)
{
this.ListBoxCondition.Items.RemoveAt(i);
}
for (int j = 0; j listbox.Items.Count; j++)
{
IterationRemoveItem(listbox);
}
}
在清除銨鈕事件中寫:
復(fù)制代碼 代碼如下:
protected void ButtonClear_Click(object sender, EventArgs e)
{
IterationRemoveItem(this.ListBox1);
}
可以從下面看到操作效果: