C# 将控件添加到TabPage,仅添加第一个标签

C# 将控件添加到TabPage,仅添加第一个标签,c#,winforms,tabpage,C#,Winforms,Tabpage,正在尝试将控件添加到选项卡页,只添加了第一个标签,不确定是否存在问题,请检查 int X = 230; int Y = 10; ArrayList Lbls = new ArrayList(); Lbls.Add("Lbls_1"); Lbls.Add("Lbls_2"); Lbls.Add("Lbls_3"); Lbls.Add("Lbls_4"); Lbls.Add("Lbls_5"); foreach (object obj in Lbls) { Label LblsAdd =

正在尝试将控件添加到选项卡页,只添加了第一个标签,不确定是否存在问题,请检查

int X = 230;
int Y = 10;

ArrayList Lbls = new ArrayList();
Lbls.Add("Lbls_1");
Lbls.Add("Lbls_2");
Lbls.Add("Lbls_3");
Lbls.Add("Lbls_4");
Lbls.Add("Lbls_5");

foreach (object obj in Lbls)
{
    Label LblsAdd = new Label();
    LblsAdd.AutoSize = true;
    LblsAdd.Text = obj.ToString();
    LblsAdd.Left = X + 50;
    LblsAdd.Top = Y;
    LblsAdd.Size = new System.Drawing.Size(30, 15); 
    MyTabPage.Controls.Add(LblsAdd);
}

如前所述,所有标签都位于同一位置,因为在每次迭代中,
X
仍然是230+50=280。 您需要增加此变量,以便下一个标签可以使用更新的结果:

foreach (object obj in Lbls)
{
    Label LblsAdd = new Label();
    LblsAdd.AutoSize = true;
    LblsAdd.Text = obj.ToString();
    X = X + 50;  // write a new value into the variable X
    LblsAdd.Left = X;
    LblsAdd.Top = Y;
    LblsAdd.Size = new System.Drawing.Size(30, 15); 
    MyTabPage.Controls.Add(LblsAdd);
}

标签位于同一位置。你应该把X改成loopAm,在左边加上“+50”,错了吗?错了。在该行上方,添加
X+=35天哪!是啊,真是个愚蠢的错误。知道了。