我有一个.Net Framework ListBox
并添加了两个项目,但只显示了一个。
代码:
private class VisibleObject
{
public override string ToString()
{
return "VisibleObject";
}
}
private class InvisibleObject : UserControl
{
public override string ToString()
{
return "InvisibleObject";
}
}
private void InsertItems()
{
listbox.Items.Add(new VisibleObject());
listbox.Items.Add(new InvisibleObject());
}
字符串
使用此代码,VisibleObject
显示在列表框中,但InvisibleObject
没有。InvisibleObject
基于UserControl
。
列表框应该显示ToString()
的结果,但这不适用于UserControl
。为什么以及如何在ListBox
中显示UserControl
?
2条答案
按热度按时间hec6srdp1#
你可以尝试使用
ListControl.Format
事件:字符串
测试结果:
的数据
lskq00tm2#
你可以显式声明这个对象可以转换为字符串,用TypeConverterAttribute装饰这个类。
字符串
然后,当您将UserControl添加到ListBox时:
型
ToString()
方法将被调用。