2

我正在用 C# 编写一个组合框,由于某种原因,下拉列表中的项目没有文本。当我选择了一个项目时,它会显示在组合框文本字段中(每当我单击下拉按钮时,下拉列表始终为空白)。数据源似乎绑定正确,因为当我选择项目时会返回正确的值,并且下拉列表的大小将根据数据源拥有的项目数量而变化。一切看起来都很好,除了我的下拉菜单似乎填充了一堆空字符串,这显然不是,因为一旦选择了一个项目,就会显示正确的文本。

这是相关代码:

if (list.Count > 0)
{
    cboCustomers.DisplayMember = "Name";
    cboCustomers.DataSource = list;                
    cboCustomers.ValueMember = "ID";                
    cboCustomers.SelectedIndex = 0;                
}

我一直在寻找这个问题的答案,但在任何地方都找不到......我确信这很简单,但我无法弄清楚。我发现的最接近的问题有一个答案,建议在数据源之前设置显示成员,这显然不起作用。

该列表是从数据库查询中填充的。这将在 keyUp 上运行,其想法是根据给定的信息在人员键入时填充列表。因此,如果我写“S”,我会得到一个带有下拉列表的组合框,其中所有客户端都以“S”开头。

4

2 回答 2

12

鉴于您的绑定中没有任何异常,您可能会受到DrawMode您的 ComboBox 属性的影响,该属性可能设置为OwnerDrawFixedOwnerDrawVariable。设置它Normal,事情应该会变得更好。

于 2013-08-05T19:30:34.983 回答
2

一旦选择了一个项目,就会显示正确的文本。

与背景颜色相同的前景色将产生与您看到的相同的结果。

于 2013-08-05T19:35:35.977 回答