通过选择一个删除4个ListBox项

时间:2013-12-16 21:49:39

标签: c# winforms listbox

我在想,但我有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!");
    }
}

1 个答案:

答案 0 :(得分:0)

执行此操作的唯一方法是,如果您可以保证它们的顺序相同。

在这种情况下,您可以使用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!");
    }    
}