C#ComboBox删除和添加

时间:2018-04-09 09:29:00

标签: c# winforms combobox

我试图使用相同的数据源填充5个不同的组合框。数据源来自类列表,其值如下(不显示成员的值用于填充组合框旁边的文本框):

StandardList.Add(new Standard() { ID = 1, number = 91632, credits = 4, 
uniEntrance = "Y", assessmentType = "Ext", standardType = "AS" });

这就是我填充每个组合框的方式:

cboNumber1.BindingContext = new BindingContext();
 cboNumber1.ValueMember = "ID";
 cboNumber1.DisplayMember = "number";
 cboNumber1.DataSource = StandardList;
 cboNumber1.Refresh();

当我从一个特定的组合框中选择一个项目时,我想从剩余的组合框中删除相同的项目,然后如果该项目在聚焦的组合框中被删除,则将其重新添加到每个组合框中。我还没有弄清楚如何'添加',但是'删除'部分适用于每个项目,除非我尝试使用

选择组合框中的最后一项
StandardList.RemoveAt(cboNumber1. SelectedIndex);

它出现了“ArgumentOutOfRangeException”。我的问题是如何解决这个问题?此外,如果我在焦点组合框中选择一个特定项目,并从每个剩余的组合框中删除相同的项目,如果我取消选择该特定项目,如何在同一位置将该特定项目重新添加到每个组合框中聚焦组合框?

这是我的第一篇文章,对任何不良做法感到抱歉。另外请记住,我仍然是一名高中生,所以我的c#知识不是很广泛,我的编码实践可能效率低下/不好。即使这意味着效率低下,我也会很欣赏任何答案/解决方案。感谢。

1 个答案:

答案 0 :(得分:0)

在第一个组合框的选择更改时,尝试使用"其中"设置其他组合框的过滤后的数据源。列表类。

像: StandardList.Where(item => item.ID!= cboNumber1.SelectedItem.Value);

这将返回一个已过滤的列表,将此列表分配给其他组合框。

这对你有用。我想..