2011-02-01 77 views
1

我正在将用户控件添加到列表框。一切工作正常,但我有一个问题,当我添加10个用户控件,然后我期待该列表框应显示滚动,以便我可以在列表框的末尾选择项目,但即使将显示滚动属性设置为true后,这绝不会发生。如何在列表框中显示滚动按钮

这里是我的代码

UserControl1 button = new UserControl1(); 

button.Location = new Point(10, 100 * i + 10); 
button.Size = new System.Drawing.Size(560, 59); 
button.MessageUsername = "Wao this is great"; 
listBox1.Controls.Add(button); 

我打开思路

在这里,你可以看到,有没有滚动enter image description here

回答

2

哪里people的想法,一个ListBox图片是一个容器控件?这不是ListBox的用途,它不适用于使用Controls.Add方法添加子控件。您应该添加(并以其他方式管理)它使用正确名称Items property显示的项目。

没有滚动条可见,因为您刚刚将每个子控件重叠在一起。 ListBox本身并不知道它们,所以它不知道它需要滚动它们。

您应该使用某种类型的面板控制,或者是Panel控制自己,或者更好的方法是自动管理布局。调查FlowLayoutPanelTableLayoutPanel。所有这些控件都有一个AutoScroll property,您可以将其设置为“True”,只要其内容超过可见客户区域就会自动显示滚动条。

+0

FlowLayoutPanel是我一直在寻找的东西。谢谢 – 2011-02-01 17:37:58

0

ListBox不是一个容器! 对于自定义列表框项目,您应该使用ownerdraw绘制模式。但在你的情况下,这是不对的。作为变体,我可以建议你使用简单的面板和孤立的滚动框,这将移动(滚动)面板上的每个控件

相关问题