【问题标题】:ComboBox doesn't load blank value when using ComboBox.SelectedItem = -1使用 ComboBox.SelectedItem = -1 时,ComboBox 不加载空白值
【发布时间】:2017-04-18 01:04:46
【问题描述】:

我有一个组合框,可以正确加载我从数据库中查询的数据列表,我唯一的问题是我似乎无法让它加载空白并强制用户从列表中选择(然后在 SelectedIndexChanged() 方法下推送操作)。通过我的搜索,我发现我可以简单地将 SelectedItem 值更改为 -1,并且应该在空选项上加载组合框,但是当我使用此代码时,我看不出有什么区别。组合框仍能正确加载列表,但仍显示列表中的第一个条目。

private void loadPatientList()
    {
        comboBox_PatientSelect.DataSource = patientList.Distinct().ToList();
        comboBox_PatientSelect.DisplayMember = "displayFullName";
        comboBox_PatientSelect.ValueMember = "patientID";
        comboBox_PatientSelect.SelectedItem = -1;
    }

感谢您的帮助 - 如果需要,我们很乐意提供更多信息。提前谢谢!

【问题讨论】:

    标签: c# visual-studio-2015 combobox


    【解决方案1】:

    您要查找的属性是SelectedIndex。所以让它comboBox_PatientSelect.SelectedIndex = -1;

    来自 MSDN:

    此属性指示组合框列表中当前选定项的从零开始的索引。设置新索引会引发 SelectedIndexChanged 事件。

    SelectedIndex、SelectedValue、FormattingEnabled的关系如下:

    • 如果 FormattingEnabled 为 false,当 SelectedValue 为空时,SelectedIndex 不会设置为 -1。
    • 如果 FormattingEnabled 为 true,则 SelectedIndex 将在 SelectedValue 为空时设置为 -1。

    注意:

    要取消选择当前选定的项目,请将 SelectedIndex 设置为 -1。如果项目是数据绑定项目,则不能将 ComboBox 项目的 SelectedIndex 设置为 -1。

    【讨论】:

    • 我最初尝试了 SelectedIndex,但一直收到有关索引超出范围的错误(可能与 MSDN 解释底部的“注释”有关)。当 ComboBox 是数据绑定项时,有没有办法解决这个问题?
    • 如果它是数据绑定的,您必须在源数据中保留一条空白记录,或者在填充组合框时插入一条空白记录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2022-12-17
    • 1970-01-01
    • 2015-06-21
    相关资源
    最近更新 更多