如何在可滚动面板中隐藏动态创建的控件

时间:2017-07-03 16:33:14

标签: c# winforms

我遇到了问题,因为在我的代码中我动态创建了新按钮,之后,窗口以这种方式显示:

enter image description here

这是我用过的代码:

private void DrawButtons()
{
    for (int i = 0; i < 90; i++)
    {

        Button button = new Button();
        button.Location = new Point(15 + 40 * i, 10);
        button.Size = new Size(35, 30);
        button.Parent = panel4;

        button.Tag = i;
        Controls.Add(button);

        button.BringToFront();

    }
}

我希望有可滚动面板,就像那里我手动创建按钮一样:

enter image description here

通过程序化创建的元素,我必须做些什么?

1 个答案:

答案 0 :(得分:1)

您可以使用AutoScroll属性。对于Panel

panel4.AutoScroll = true;

但你也应该设置这个属性:

button.Anchor = AnchorStyles.Left;

并将按钮添加到Panel

panel4.Controls.Add(button);

所以这应该是你想要的:

 private void DrawButtons()
 {
     for (int i = 0; i < 90; i++)
     {
         ...
         button.Anchor = AnchorStyles.Left;
         ...
         panel4.Controls.Add(button);//Add this also
         ...
     }
     panel4.AutoScroll = true;
 }

结果:

enter image description here