【问题标题】:Add controls to TabPage, only first label is getting added向 TabPage 添加控件,仅添加第一个标签
【发布时间】:2017-05-12 11:19:23
【问题描述】:

尝试向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 = 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);
}

【问题讨论】:

  • 标签位于同一位置。你应该在 for 循环中更改 X
  • 我在左边加“+50”,是不是错了?
  • 错了。在此行上方,添加X+=35;
  • 天啊!是啊..真是个愚蠢的错误。明白了。

标签: c# winforms tabpage


【解决方案1】:

正如已经指出的那样,所有标签都位于同一位置,因为在每次迭代中 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);
}

【讨论】:

    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多