从列表中删除所选项目

时间:2014-09-25 07:48:34

标签: c# list visual-studio-2013

基本上它是一个联系人列表,从列表框中选择联系人,然后点击删除按钮,将其从列表中删除。

        private void btnRmv_Click(object sender, EventArgs e)
    {

        try{

        listBox.Items.Remove(listBox.SelectedItems[0]);

        people.RemoveAt(listBox.SelectedIndex);

        }
        catch { }
    }

此代码似乎从列表框中删除了联系人,但如果我保存我的程序并再次打开它,联系人就会回来。我正在保存Xml文件中的所有联系人。程序会在退出时自动保存,并且有一个手动保存按钮。

由于

3 个答案:

答案 0 :(得分:2)

尝试从"人员中删除"首先,然后从列表框中删除它,或者将选定的索引作为参数。示例代码粘贴在

下面
    try
    {

    int _SeletedIndex = listBox.SelectedIndex();

    listBox.Items.Remove(listBox.SelectedItems[0]);

    people.RemoveAt(_SeletedIndex);

    }
    catch { }

答案 1 :(得分:1)

您没有显示您的代码要保存的位置,但我想有一个联系人丢失了 - 可能是您要删除的联系人中的一个?

由于您在从列表框中删除项目后使用SelectedIndex,因此必须选择其他项目。

尝试撤消订单:

private void btnRmv_Click(object sender, EventArgs e)
{
    try
    {
        people.RemoveAt(listBox.SelectedIndex);
        listBox.Items.Remove(listBox.SelectedItems[0]);
    }
    catch { }
}

答案 2 :(得分:1)

您首先删除了selected item,因此您丢失了所选索引,并且列表people中没有删除任何项目。

让我们重新排序:

people.RemoveAt(listBox.SelectedIndex);

listBox.Items.Remove(listBox.SelectedItems[0]);