C# 从输出列表框中删除指定项时如何重新启用列表框
我试图仅重新启用与已从输出列表框中删除的项相关的列表框。例如,如果我从Body Type listbox中选择“Wang”,从Package listbox中选择“Advance”,则名为“lstOutPut”的listbox将显示以下内容: 我想做的是,如果我要删除“SUV”,我只想重新启用Body Type listbox,而不是其他 这是我的密码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) {
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]);
}
非常感谢。这正是我所指的。