【问题标题】:Remove selected value in combobox datasource [duplicate]删除组合框数据源中的选定值[重复]
【发布时间】:2013-01-10 01:50:00
【问题描述】:

我有一个窗口表单,其中管理员将用户名和密码分配给某个员工。它有一个名为 cmboEmpName 的组合框,其中包含员工的姓名。

当新按钮被点击时,一个消息框将确认该操作。如果单击是,我想删除组合框中的选定值。但是我的代码给了我一个错误..

Items collection cannot be modified when the DataSource property is set.

这是我的代码:

 if (MessageBox.Show("Are you want to add new record?", "Confirm New Record", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                MessageBox.Show("Record successfully added!");
                sqlcom.ExecuteNonQuery();
                sqlcon.Close();
                cmboEmpName.Items.Remove(cmboEmpName.Items[cmboEmpName.SelectedIndex]);
                cmboEmpName.Refresh();

            }

【问题讨论】:

  • 您应该从Datasource 而不是ComboBox 中删除该项目
  • 我该怎么做?
  • 从数据源中删除,然后用组合框重新绑定
  • 你能给我一个示例代码吗,因为我是 C# 的新手。谢谢。
  • 您的组合框数据源是什么? List, ObservableCollection, Array, 显示你的数据源代码

标签: c# combobox datasource


【解决方案1】:

您应该做的是从最初绑定到组合框的集合中删除该项目。之后重新绑定到组合框

【讨论】:

  • 我将如何删除集合中的项目?我真的不知道,因为我只在其属性中设置组合框的数据源,而不是通过代码。
【解决方案2】:

cmboEmpName 的 datasource 属性设置为什么?您需要修改底层数据结构。因此,如果您将数据源设置为 List<String> 对象,则修改该对象,然后在组合框上调用 DataBind。

【讨论】:

  • 在哪里可以找到数据源属性?
  • 它是您填充组合框的对象。
  • 嗯。像 displaymember 和 valuemember 一样?如果其显示成员 = 员工姓名,则 valuemember = empID。
  • 不行,看看组合框的属性。数据源是组合框获取它应该显示的数据的地方,即员工列表。这是什么设置?
  • 我从数据库中获取数据。
猜你喜欢
  • 1970-01-01
  • 2012-03-03
  • 2012-09-27
  • 2012-07-24
  • 2023-03-09
  • 2019-11-21
  • 2018-12-13
  • 2016-07-19
  • 2015-04-08
相关资源
最近更新 更多