将Windows表单对象添加到列表框

时间:2010-09-30 19:08:22

标签: c# windows twitter listbox

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

我的问题是,当我将它们添加到列表框时我看不到推文。添加3个推文(窗体对象)后,列表框中有3个空白元素,但我看不到任何内容。

如何将Windows表单对象添加到列表框?

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

请帮助

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

您可能希望了解如何使用WPF实现它。你可以在列表框中放置任何东西。

答案 2 :(得分:2)

一些想法:

  1. 您最好使用自定义控件,而不是整个表单
  2. 列表框上没有控件...考虑一个ListView:http://www.codeproject.com/KB/list/ListViewEmbeddedControls.aspx
  3. 您正在尝试的一些示例代码将帮助我们放大您正在做的事情
  4. HTH, 詹姆斯

答案 3 :(得分:1)

我认为ListBox不能为每个元素显示除文本字符串之外的任何内容,因此如果您希望这样,那么您将无法看到每个表单的图像。您可以尝试使用FlowLayoutPanel来管理控件列表。