2

所以我四处寻找关于如何动态创建按钮的一些想法。我找到了一个可以合并到我的项目中的帖子。不幸的是,这些按钮是垂直创建的。windows窗体有没有办法从左到右水平对齐它们?

4

2 回答 2

2

听起来像是FlowLayoutPanel控件的一个很好的案例。我们有一些旧代码可以相对于彼此移动按钮。我用 FlowLayoutPanel 替换了它,它让生活变得更加轻松。

您可以让按钮水平或垂直布局,在每个按钮周围设置填充以使它们等距间隔,设置用于对齐面板内控件的属性,如果用户调整表单大小,则允许它们流入多行等。进行维护以后也容易多了。想象一下在其他 10 个按钮中间添加一个按钮,然后必须进行手动调整,使按钮不会相互重叠,等等。

听起来您不会遇到最后一个问题,因为您是在运行时动态创建它们的。不过,您可以创建一个按钮并将其放置到 FlowLayoutPanel 中,并让控件处理它相对于其他控件的实际放置。另外,如果用户调整表单大小,您不必担心移动它们,只要您可以使用多行按钮...

于 2012-06-20T16:09:01.817 回答
0

只需为每个按钮设置 location 属性:

int lastX = 0;
for (int i = 0; i < 4; i++) {
  Button b = new Button();
  b.Location = new Point(lastX, 0);
  this.Controls.Add(b);
  lastX += b.Width;
}
于 2012-06-20T16:05:58.333 回答