我有一个表格,其中有DataGridView
和combobox
。Combobox
是通过属性菜单中的DataSource填充的,我还通过这个菜单指定了DisplayMember和ValueMember。我有一个按钮,当我点击它时,另一个表单会显示出来,我可以添加一个新的项目到我的组合框的数据源。当我关闭这个新表单时,我希望我的comobox的窗口刷新,我可以看到我刚刚添加到combobox中的新项目,但我不知道如何刷新。
我试过:
myComboBox.Refresh();
但什么也没发生
我还试了这个
myComboBox.Items.Add(myclass.myNewItem);
但它会抛出一个异常:
当设置了“设置”属性时,不能修改项目集合。
有人能帮帮我吗?
**编辑:**我发现当我在第二个表单中添加一个新项目时,一切都很好,新项目也添加到数据库中,但当我返回到第一个表单时,听起来什么也没发生。所以我把listBox添加到第二个表单,回到第一个表单后我什么也没看到。我真的不知道为什么组合框和listbox使用旧的目录,即使我的数据库改变了。然后我试了这个,它工作:
在第二个表单中,我将我的新项目保存在一个类中(名为transfer),当我返回到第一个表单时,我这样做:
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();
谢谢大家的帮助!:)
4条答案
按热度按时间lrl1mhuk1#
更新
在包含comboBox的主窗体中。我猜你的代码是这样的
在另一个表单上,您的代码将是这样的
这个解决方案应该对你有用。
yduiuuwa2#
试试这个:
希望这对你有帮助:)
cdmah0mi3#
只需要清除你的任务和清除项目,然后像这样刷新组合:
k97glaaz4#
我所要做的就是填充TableAdapter,然后刷新组合框: