如何在ListBox中显示滚动按钮

时间:2011-02-01 14:43:30

标签: c# winforms custom-controls scroll

我正在将用户控件添加到列表框中。一切正常,但我有一个问题,当我添加10个用户控件,然后我希望列表框应该显示滚动,以便我可以选择列表框末尾的项目,但即使将show scroll属性设置为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 个答案:

答案 0 :(得分:2)

people在哪里知道ListBox是容器控件?这不是ListBox的用途,它不是为了保存使用Controls.Add方法添加的子控件而设计的。您应该使用其恰当命名的Items property添加(并以其他方式管理)它显示的项目。

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

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

答案 1 :(得分:0)

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