列表框删除项目

时间:2011-09-04 15:34:27

标签: c# listbox

我正在尝试在处理完每个项目后使用listId.Items.Remove(listId.SelectedItem[x]);之类的内容。显然,这没有任何建议:

int listCellCounter = 0;

for (int x = 0; x < listId.Items.Count; x++)
{
    Console.WriteLine(txtWebUpdate.Text + listId.Items[x].ToString() + "&ire=1", listCell.Items[listCellCounter].ToString());
    listId.SelectedIndex = x;
    listCell.SelectedIndex = listCellCounter;
    lblID.Text = listId.Items[x].ToString();

    if (listCellCounter == listCell.Items.Count - 1)
    {
        listCellCounter = 0;
    }
    else
    {
        listCellCounter += 1;
    }
}

4 个答案:

答案 0 :(得分:1)

如果处理顺序不重要,则从最后一项开始。例如:

for (int x = listId.Items.Count-1; x > 0; x--) {}

答案 1 :(得分:0)

通常情况下,如果您在处理过程中删除它们,我建议您在列表中处理所选项目:

for(int x = listId.SelectedIndex; x >= 0; x = listId.SelectedIndex)
{
   // Do your processing here
   listId.Items.RemoveAt(x);
   listId.Update();
}

但看起来你正在处理列表中的每个项目。如果是这种情况,也许这是合适的:

while (listId.Items.Count > 0)
{
   listId.SelectedIndex = 0;
   listId.Update();
   // Do your processing here
   listId.Items.RemoveAt(0);
}

答案 2 :(得分:0)

另一种选择是标记和扫描算法。在for循环中构建要删除的对象列表(而不是删除它们),然后在计算出需要删除的对象后删除该列表中的所有项目。

答案 3 :(得分:0)

如果您不想向用户显示每个项目的删除,只需在循环完成后清空ListBox

} //end loop

listId.Clear();