我正在将用户控件添加到列表框中。一切正常,但我有一个问题,当我添加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);
我愿意接受想法
这里是你可以看到没有滚动
的图片答案 0 :(得分:2)
people在哪里知道ListBox
是容器控件?这不是ListBox
的用途,它不是为了保存使用Controls.Add
方法添加的子控件而设计的。您应该使用其恰当命名的Items
property添加(并以其他方式管理)它显示的项目。
没有可见的滚动条,因为您只是将每个子控件叠加在一起。 ListBox
本身并不了解它们,所以它不知道它需要滚动它们。
您应该使用某种类型的面板控件,Panel
控件本身,或者更好的是自动管理布局的控件。调查FlowLayoutPanel
或TableLayoutPanel
。所有这些控件都有一个AutoScroll
property,您可以设置为“True”,只要内容超出可见客户区,它就会自动显示滚动条。
答案 1 :(得分:0)
ListBox不是容器! 对于自定义列表框项目,您应该使用ownerdraw绘制模式。但在你的情况下,这是不对的。作为变体,我可以建议您使用简单的面板和隔离滚动框,它将移动(滚动)面板上的每个控件