从列表中删除所选项目

本文关键字:选项 项目 删除 列表 | 更新日期: 2023-09-27 18:24:28

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

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

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

感谢

从列表中删除所选项目

尝试先从"people"中删除,然后从列表框中删除,或者将所选索引带到参数中。样本代码粘贴在下方

    try
    {
    int _SeletedIndex = listBox.SelectedIndex();
    listBox.Items.Remove(listBox.SelectedItems[0]);
    people.RemoveAt(_SeletedIndex);
    }
    catch { }

您没有显示代码的保存位置,但我想缺少一个联系人-可能是您想要删除的联系人下面的那个联系人?

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

尝试颠倒顺序:

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

您首先要删除selected item,因此会丢失所选索引,并且不会删除列表people中的任何项目。

让我们重新排序行:

people.RemoveAt(listBox.SelectedIndex);
listBox.Items.Remove(listBox.SelectedItems[0]);