C# 从输出列表框中删除指定项时如何重新启用列表框

C# 从输出列表框中删除指定项时如何重新启用列表框,c#,listbox,C#,Listbox,我试图仅重新启用与已从输出列表框中删除的项相关的列表框。例如,如果我从Body Type listbox中选择“Wang”,从Package listbox中选择“Advance”,则名为“lstOutPut”的listbox将显示以下内容: 我想做的是,如果我要删除“SUV”,我只想重新启用Body Type listbox,而不是其他 这是我的密码 private void lstBody_SelectedIndexChanged(object sender, EventArgs e) {

我试图仅重新启用与已从输出列表框中删除的项相关的列表框。例如,如果我从Body Type listbox中选择“Wang”,从Package listbox中选择“Advance”,则名为“lstOutPut”的listbox将显示以下内容:

我想做的是,如果我要删除“SUV”,我只想重新启用Body Type listbox,而不是其他

这是我的密码

private void lstBody_SelectedIndexChanged(object sender, EventArgs e)
{
    if (lstBody.SelectedItem != null)
    {
        lstOutput.Items.Add(lstBody.SelectedItem);
        lstBody.SelectionMode = SelectionMode.None;
        lstBody.Enabled = false;             
    }
}

private void lstPackage_SelectedIndexChanged(object sender, EventArgs e)
{         
    if (lstPackage.SelectedItem != null)
    {
        lstOutput.Items.Add(lstPackage.SelectedItem);
        lstPackage.SelectionMode = SelectionMode.None;
        lstPackage.Enabled = false;
    }
}
这就是我的移除按钮

private void btnRemove_Click(object sender, EventArgs e)
{
    //remove selected item only
    while (lstOutput.SelectedItems.Count > 0)
    {
        lstOutput.Items.Remove(lstOutput.SelectedItems[0]);           
    }

    lstBody.Enabled = true;
    lstPackage.Enabled = true;
}
有什么想法吗


谢谢

对于每个列表框,如果在
lstOutput
中不存在其项,则启用该列表框:

var listBoxes = new ListBox[] {body, package, wheel, accessories};
foreach(var lst in listBoxes)     
   lst.Enabled = !lst.Items.Cast<string>().Any(x => lstOutput.Items.Contains(x));
var listboxs=new ListBox[]{车身、包装、车轮、附件};
foreach(列表框中的var lst)
lst.Enabled=!lst.Items.Cast().Any(x=>lstOutput.Items.Contains(x));

假设不同输入列表框之间没有重复的值,您可以在
btnRemove\u Click
事件中执行以下操作

 var inputListBoxes = new[] { lstPackage, lstBody };
 while (lstOutput.SelectedItems.Count > 0)
 {
   inputListBoxes.First(x => x.Items.Contains(lstOutput.SelectedItems[0])).Enabled = true;
   lstOutput.Items.Remove(lstOutput.SelectedItems[0]);
  }

非常感谢。这正是我所指的。