从列表中删除所选项目
本文关键字:选项 项目 删除 列表 | 更新日期: 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]);