我遇到了问题,因为在我的代码中我动态创建了新按钮,之后,窗口以这种方式显示:
这是我用过的代码:
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();
}
}
我希望有可滚动面板,就像那里我手动创建按钮一样:
通过程序化创建的元素,我必须做些什么?
答案 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;
}
结果: