是因为ComboBox默认情况下会调用每个对象的ToString()方法来显示项目的名称。如果List<>中的对象没有重写ToString()方法或者ToString()方法返回的是空字符串,那么ComboBox就无法显示项目的名称。
要解决这个问题,可以通过以下几种方式:
public class MyObject
{
public string Name { get; set; }
public override string ToString()
{
return Name;
}
}
List<MyObject> myList = new List<MyObject>();
// 添加项目到myList...
comboBox1.DataSource = myList;
comboBox1.DisplayMember = "Name";
List<MyObject> myList = new List<MyObject>();
// 添加项目到myList...
comboBox1.DataSource = myList;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";
以上是解决WinForms自定义ComboBox不显示List<>项目名称的几种方法。根据具体的需求和场景选择合适的方式来实现。如果你想了解更多关于WinForms开发的信息,可以参考腾讯云的WinForms产品文档:WinForms产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云