【问题标题】:how can i avoid getting duplicates in a combo box and make sure that my combo boxes always get the values they are supposed to get?如何避免在组合框中出现重复项并确保我的组合框始终获得它们应该获得的值?
【发布时间】:2016-09-23 17:33:53
【问题描述】:

我使用了以下链接,但它不起作用 Combo boxes duplicate entries

数据是:

打印机、爱普生、T200

大型机、IBM、z15

大型机、Del、X99

这些信息来自数据库,但它都在那里并经过测试,因此我将不相关的代码排除在外。

所以我有两个问题。第一个是 EquipmentType 组合框 重复值。我有 2 台大型机,所以它显示了两次大型机。 第二个问题是,如果我通过 EquipmentType 组合框, 并返回到以前的值,设备模型在我打开之前不会更新 EquipmentName 组合框物理单击条目

private void Client_Maintenance_Load_1(object sender, EventArgs e)

{

    cmbicEquipmentType.DataSource = equip;
    cmbicEquipmentType.DisplayMember = "EquipmentType";

    cmbicEquipmentName.DataSource = equipmentName;
    cmbicEquipmentModel.DataSource = equipmentModel;
}

private void cmbicEquipmentType_SelectedIndexChanged(object sender, EventArgs e)

{

    nameSource.Clear();
    foreach (Equipment item in equip)
        {
            if (item.EquipmentType == cmbicEquipmentType.Text)
                {
                    nameSource.Add(item.EquipmentName);
                    cmbicEquipmentName.SelectedIndex = 0;
                }               

        }
    nameSource.DataSource = null;
    nameSource.DataSource = equipmentName;
    cmbicEquipmentName.DataSource = nameSource;
    cmbicEquipmentName.Update();
    cmbicEquipmentName.Refresh();
}

private void cmbicEquipmentName_SelectedIndexChanged(object sender, EventArgs e)

{

    nameSource2.Clear();   
    foreach (Equipment item in equip)
        {
            if (item.EquipmentName == cmbicEquipmentName.Text)
                {
                    nameSource2.Add(item.EquipmentModel);
                    cmbicEquipmentModel.SelectedIndex = 0;
                }
            }

    nameSource2.DataSource = null;            
    nameSource2.DataSource = equipmentModel;

    cmbicEquipmentModel.DataSource = nameSource2;
    cmbicEquipmentModel.Update();
    cmbicEquipmentModel.Refresh();

}

这是显示重复项的组合框

设备型号不更新

提前谢谢你

【问题讨论】:

  • 请查看URL,这将有助于提升您的内容质量
  • 我检查了链接,但我仍然不清楚。我输入的代码太多还是太少?我尽量让代码保持相关性。

标签: c# forms combobox iteration datasource


【解决方案1】:
if (!cmbicEquipmentType.Items.Contains(item.EquipmentType.ToString()))
                    {
                        cmbicEquipmentType.Items.Add(item.EquipmentType.ToString());
                    }

这解决了重复问题。我调整了我的程序,使第二个问题看起来像它应该发生的那样。

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2016-12-26
    相关资源
    最近更新 更多