【发布时间】:2018-08-15 05:54:10
【问题描述】:
我有一个带有DataGridView 和combobox 的表格。 Combobox 通过属性菜单中的 DataSource 填充,我也通过此菜单指定 DisplayMember 和 ValueMember。
我有一个按钮,当我单击它时,会显示另一个表单,我可以向组合框的数据源添加一个新项目。
当我关闭这个新表单时,我希望我的组合框的数据源刷新,以便我可以看到我刚刚在组合框中添加的新项目,但我不知道如何。
我试过了:
myComboBox.Refresh();
但是什么都没发生
我也试过这个:
myComboBox.Items.Add(myclass.myNewItem);
但它会引发异常:
设置数据源属性时无法修改项目集合。
有人可以帮帮我吗?
编辑: 我发现当我在第二种形式中添加一个新项目时,一切都很好,新项目也被添加到数据库中,但是当我返回第一种形式时,听起来好像什么也没发生。所以我将列表框添加到第二种形式,回到第一种形式后我没有看到任何添加。我真的不知道为什么组合框和列表框使用旧数据源,即使我的数据库发生了变化。 然后我尝试了这个并且成功了:
在第二种形式中,我将新项目保存在一个类中(命名为转移),当我返回第一种形式时这样做:
DsMy.tblRow row = dsMy.tbl.NewtblRow();
row.BeginEdit();
row.Name = transfer.newName;
row.Id = transfer.newId;
row.EndEdit();
dsMy.tbl.AddtblRow(row);
this.Validate();
tblTableAdapter.Update(dsMy.tbl);
myComboBox.Refresh();
感谢大家的帮助! :)
【问题讨论】:
-
感谢您的帮助,但对我没有用。
-
两个链接都不行?
-
请看一下:stackoverflow.com/a/31452304/7124761 如果这不能解决您的问题,请发布您的标记和代码隐藏代码,然后尝试使用它