C#Combobox显示空白项目

时间:2013-08-05 19:25:17

标签: c# winforms combobox

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

这是相关代码:

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

我已经找到了答案,但无法在任何地方找到它......我确信这很简单,但我无法理解。我发现的最接近的问题是建议在数据源之前设置显示成员的答案,这显然不起作用。

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

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

  

选择项目后,将显示正确的文本。

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