【问题标题】:c# programmatically add controls adjacently?c# 以编程方式相邻添加控件?
【发布时间】:2016-05-29 13:16:43
【问题描述】:

当我在表单加载中这样做时

    TextBox tb1 = new TextBox();
    TextBox tb2 = new TextBox();

    this.Controls.Add(tb1);
    this.Controls.Add(tb2);

它将一个文本框放在另一个文本框之上(不是垂直或水平,而是相互覆盖),这不是我想要的。

我可以手动尝试以编程方式定位它们,但是当我添加它们时,有没有一种方法可以让每个控件相邻显示?

【问题讨论】:

标签: c# winforms


【解决方案1】:

您可以使用FlowLayoutPanel
这是一个简短的示例代码,您可以使用 Linqpad 进行测试

Form f = new Form();
FlowLayoutPanel flp = new FlowLayoutPanel();
flp.Dock = DockStyle.Fill;
flp.FlowDirection = FlowDirection.LeftToRight;
f.Controls.Add(flp);
TextBox t1 = new TextBox();
flp.Controls.Add(t1);
TextBox t2 = new TextBox();
flp.Controls.Add(t2);
f.Show();

【讨论】:

  • 相当不错,所以就代码比其他情况而言,我看到,在表单加载中,它是 4 行,然后是其他 4 行,类似于我所拥有的(但是添加到流布局面板)。 pastebin.com/raw/5qSc2pEK
  • @barlop 您可以在设计器中使用它而无需代码。还有TableLayoutPanel
猜你喜欢
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多