Waf*_*les 0 c# checkedlistbox winforms
我在C#中的检查列表框中显示对象时遇到问题.我可以添加对象,但是当对象显示给用户时,程序会将复选框选择输出为Salesform.order,而不是像我想要的那样在订单类中调用tostring方法.这导致多个订单显示为相同的东西:"Salesform.order".
orderCheckList.Items.Add(orderUp);
Run Code Online (Sandbox Code Playgroud)
(这里,orderUp是一个带有客户名称等字段的订单)
有人可以帮忙吗?我知道有一个简单的解决方案,我忽略了.
设置DisplayMember的CheckedListBox您要显示的属性.例如:
orderCheckList.DisplayMember = "Title";
// Now orderUp.Title will be displayed
Run Code Online (Sandbox Code Playgroud)
(ToString()根据Ragepotato的建议,覆盖也会起作用,但使用DisplayMember更灵活,因为这意味着您可以在各种不同的上下文中使用相同的数据类型.)
示例代码:
using System.Windows.Forms;
class Test
{
static void Main()
{
Form f = new Form
{
Controls =
{
new CheckedListBox
{
Items =
{
new { FirstName = "Jon", LastName = "Skeet" },
new { FirstName = "Holly", LastName = "Skeet" }
},
DisplayMember = "FirstName"
}
}
};
Application.Run(f);
}
}
Run Code Online (Sandbox Code Playgroud)