将一个窗体对象添加到列表框

我正在C#中创build一个Twitter客户端。 我想把每一条推文作为一个列表框的一个元素。 我创build了一个窗体,表示一条推文(它有一张图片和标签)。

我的问题是,当我不能看到鸣叫时,我将它们添加到列表框。 添加3个推文(窗体对象)后,列表框中有3个空白元素,但我什么都看不到。

我怎样才能将一个窗体对象添加到列表框?

(这些表单工作正常,因为如果我使用ShowDialog方法,我可以看到它们)

请帮忙

您可以将一个Form对象添加到ListBox.Items集合中,但唯一可以看到的是该表单的类型名称。 ListBox无法将控件呈现为其项目。

有效的解决方案是实现ListBox.DrawItem事件和自定义绘制鸣叫。 在事件的MSDN Library文档中有一个很好的例子。

缓慢的解决方案是将AutoScroll属性设置为true的控件添加到Panel的Collection属性。 这不能是一个形式,它必须是一个UserControl。

你可能想要考虑使用WPF来实现它。 你几乎可以把任何东西放在列表框中。

一些想法:

  1. 你会更好地使用自定义控件,而不是一个完整的表单
  2. 一个列表框不能有它的控制…考虑一个ListView: http : //www.codeproject.com/KB/list/ListViewEmbeddedControls.aspx
  3. 你正在尝试的一些示例代码将帮助我们放大你正在做的事情

HTH,James

我不认为ListBox可以显示每个元素的文本字符串以外的任何东西,所以如果这是您所期望的,您将无法看到每个表单的图像。 您可以尝试使用FlowLayoutPanel来管理控件列表。