通过选择一个删除 4 个列表框项

本文关键字:删除 列表 一个 选择 | 更新日期: 2024-10-25 09:59:43

我想知道,但我有 4 个列表框,我想知道的是如何通过选择一个项目来删除所有 4 个项目?

正如您在这里看到的,这是删除所选项目的部分,但是如果我只选择"seriesName",我将如何删除列表框中的所有 4 个项目。

for (int x = lstb_seriesName.SelectedIndices.Count - 1; x >= 0; x--)
{
    int a = lstb_seriesName.SelectedIndices[x];
    lstb_seriesName.Items.RemoveAt(a);
}

这是我删除按钮的代码。

private void btn_Delete_Click(object sender, EventArgs e)
{
    if (lstb_seriesName.SelectedItems.Count <= 0)
    {
        MessageBox.Show("You need to select an item to delete first!");
    }
    else
    {
        for (int x = lstb_seriesName.SelectedIndices.Count - 1; x >= 0; x--)
        {
            int a = lstb_seriesName.SelectedIndices[x];
            lstb_seriesName.Items.RemoveAt(a);
        }
        System.IO.StreamWriter DeleteFileData = new System.IO.StreamWriter(sPath);
        foreach (var item in lstb_seriesName.Items)
        {
            DeleteFileData.WriteLine(item);
        }
        foreach (var item in lstb_seriesDay.Items)
        {
            DeleteFileData.WriteLine(item);
        }
        foreach (var item in lstb_seriesTime.Items)
        {
            DeleteFileData.WriteLine(item);
        }
        foreach (var item in lstb_seriesActive.Items)
        {
            DeleteFileData.WriteLine(item);
        }
        DeleteFileData.Close();
        MessageBox.Show("Program deleted!");
    }
}

通过选择一个删除 4 个列表框项

执行此操作的唯一方法是可以保证它们都按相同的顺序排列。

在这种情况下,您可以采用 IndexOf(item) 并使用索引值按索引删除其他列表项。

否则,您需要某种方式将这些人相互链接/关联。

按请求编辑:

private void btn_Delete_Click(object sender, EventArgs e)
{
    if (lstb_seriesName.SelectedItems.Count <= 0)
        MessageBox.Show("You need to select an item to delete first!");
    else
    {
        var indexesToRemove = lstb_seriesName.SelectedIndices;
        foreach(var index in indexesToRemove)
        {
            lstb_seriesName.Items.RemoveAt(index);
            lstb_seriesDay.Items.RemoveAt(index);
            lstb_seriesTime.Items.RemoveAt(index);
            lstb_seriesActive.Items.RemoveAt(index);
        }    
        MessageBox.Show("Program deleted!");
    }    
}