我正在C#中创build一个Twitter客户端。 我想把每一条推文作为一个列表框的一个元素。 我创build了一个窗体,表示一条推文(它有一张图片和标签)。
我的问题是,当我不能看到鸣叫时,我将它们添加到列表框。 添加3个推文(窗体对象)后,列表框中有3个空白元素,但我什么都看不到。
我怎样才能将一个窗体对象添加到列表框?
(这些表单工作正常,因为如果我使用ShowDialog方法,我可以看到它们)
请帮忙
您可以将一个Form对象添加到ListBox.Items集合中,但唯一可以看到的是该表单的类型名称。 ListBox无法将控件呈现为其项目。
有效的解决方案是实现ListBox.DrawItem事件和自定义绘制鸣叫。 在事件的MSDN Library文档中有一个很好的例子。
缓慢的解决方案是将AutoScroll属性设置为true的控件添加到Panel的Collection属性。 这不能是一个形式,它必须是一个UserControl。
你可能想要考虑使用WPF来实现它。 你几乎可以把任何东西放在列表框中。
一些想法:
HTH,James
我不认为ListBox可以显示每个元素的文本字符串以外的任何东西,所以如果这是您所期望的,您将无法看到每个表单的图像。 您可以尝试使用FlowLayoutPanel来管理控件列表。