用户控件中的滚动条

时间:2014-09-18 03:09:14

标签: c# winforms scroll

我有一个简单的用户控件,如下所示:

enter image description here

是的,内部没有任何内容,控件将使用下面的控件加载事件动态添加到用户控件中:

List<Control> controlsNeed = getUserControls();
foreach(Control c in controlsNeed)
{
    this.Controls.Add(c);
}

控件正确加载,但如果有很多控件,则不会有足够的空间和滚动条。

问题是,尽管设置如下,滚动条也没有添加到控件中:

  1. 在用户控件中将AutoScroll设置为true
  2. 尝试将AutoSize设置为false和true
  3. 应添加哪些设置/代码才能将滚动条添加到控件中?

2 个答案:

答案 0 :(得分:4)

List<Control> controlsNeed = getUserControls();
int PaddingTop = 10;
foreach (Control c in controlsNeed)
{
this.Controls.Add(c);
c.Location = new Point(0, c.Height + PaddingTop);
}

或者您可以将Panel控件继承到用户控件,该控件将像面板控件一样工作

public partial class MyControl : Panel
{
}

答案 1 :(得分:2)

我认为将AutoScrollMinSize添加到用户控件应该可以解决问题

    public MyUserControl()
    {
        InitializeComponent();

        AutoScrollMinSize=new Size(0,1);
        AutoScroll = true;
    }