答案 0 :(得分:0)
以下是使用计数器跟踪创建的控件数量并计算正确Y位置的简单示例:
private int counter = 0;
private void button1_Click(object sender, EventArgs e)
{
counter++;
int y = counter * 25;
Label lbl = new Label();
lbl.Text = "Label " + counter.ToString();
lbl.Location = new Point(5, y);
TextBox tb = new TextBox();
tb.Location = new Point(lbl.Bounds.Right + 5, y);
this.Controls.Add(lbl);
this.Controls.Add(tb);
}
答案 1 :(得分:0)
您的意思是希望TextBox
根据Label
的宽度向左/向右移动吗?
private void button2_Click(object sender, EventArgs e) {
int gap1 = textBox1.Left - label1.Right;
label1.AutoSize = true;
label1.Text = "long long long long long long long long";
textBox1.Left = label1.Right + gap1;
int gap2 = textBox1.Left - label1.Right;
label2.AutoSize = true;
label2.Text = "s";
textBox2.Left = label2.Right + gap2;
}
首先记录TextBox
和Label
之间的差距,然后将AutoSize
设置为true
,然后设置Label
的新内容,最后你可以相应地移动TextBox
。
在:
后:
如果您需要对齐多个TextBox
或TextBox
的宽度,那么它会更复杂,但您可以遵循类似的逻辑。
但是,您必须编写自己的代码,但在Design视图中不可行,因为控件的Anchor
是父容器而不是兄弟控件。好吧,在Mac上的Xcode
你可以这样做,但AFAIK Visual Studio
没有开箱即用的功能。