【问题标题】:Winforms Combobox SelectedValue is NullWinforms Combobox SelectedValue 为 Null
【发布时间】:2011-04-21 12:48:26
【问题描述】:

我有一个数据输入表单,上面有几个组合框。每个组合框都有自己的绑定源,并且在我启动表单时会正确填充。但是,如果我编辑表单上的记录并尝试从组合框中将更新后的 selectedvalue 传递给数据库,我会收到一个错误,即我将其传递给 NULL。

这个问题似乎在我每次运行该死的东西时都会发生,我无法弄清楚为什么它不能正常工作。基本上我正在尝试将新记录插入表中,但由于某种原因它无法提取我选择的值。我插入数据的代码如下:

Data.Manager.AddEmployee
 (
   InactiveEmployeeSelected.GUID,
   Convert.ToByte(RoleComboBox.SelectedValue),
   NotesTextBox.Text.Trim(),
   ScheduleTextBox.Text.Trim(),
   ExtensionTextBox.Text.Trim(),
   CodeTextBox.Text.Trim(),
   Convert.ToBoolean(EBApprovedCheckbox.CheckState),
   Convert.ToByte(ApprovalLevelComboBox.SelectedValue),        //pulling null
   Convert.ToBoolean(AssignComtracksCheckbox.CheckState),
   Security.Manager.CurrentUser.GUID,
   DateTime.Today,
   Convert.ToBoolean(IsActiveCheckbox.CheckState)
);

任何帮助将不胜感激。

【问题讨论】:

    标签: c# winforms combobox


    【解决方案1】:

    也许,您只需要改用SelectedItem

    【讨论】:

      【解决方案2】:

      您是否使用 DropDownStyleDropDown 并在 ComboBox 中输入内容?如果是这样,那将导致SelectedValue 为空,我假设因为输入的值不再是ComboBox 中的项目之一。

      如果是这种情况,请将 DropDownStyle 设置为 DropDownList,假设用户必须选择现有值。

      【讨论】:

      • 为我工作(超过 5 年),默认 DropDownStyleDropDown,而不是 DropDownList。当设置为后者时,用户无法编辑选项,我可以使用SelectedItem 属性获取和设置。
      【解决方案3】:

      ComboBox 必须有 DataSource。通过 ComboBox1.DataSource 链接数据

      【讨论】:

      • 这实际上应该是答案。如果您创建匿名类型并添加项目,然后使用 DisplayMember 和 ValueMember,则 selectedItem 属性有效,但 SelectedValue 始终为空(在我的情况下)。如果您创建一个新列表,然后使用 combobox.Datasource 属性,则会正确填充 SelectedValue。奇怪!
      猜你喜欢
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      相关资源
      最近更新 更多