【问题标题】:How to hide dynamically created controls in scrollable panel如何在可滚动面板中隐藏动态创建的控件
【发布时间】:2017-07-03 16:33:13
【问题描述】:

我有一个问题,因为在我的代码中我正在动态创建新按钮,然后,窗口看起来就是这样:

这是我使用的代码:

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();

    }
}

我想要一个可滚动的面板,就像那里一样,我在其中手动创建了按钮:

我必须做什么才能对程序创建的元素产生这种效果?

【问题讨论】:

    标签: c# winforms


    【解决方案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;
     }
    

    结果:

    【讨论】:

    • @Michael 查看我的更新答案。您还应该设置 Anchor 属性。 button.Anchor = AnchorStyles.Left;
    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多