只能生成三个label

寻找更好的存在 2017-11-30 07:27:31
for (int i = 0; i <3; i++)
{
for (int j = 0; j < 3; j++)
{
Label lb = new Label();
lb.Location = new Point(i * 35, j * 35);
lb.Text = "im here";
lb.Visible = true;
Controls.Add(lb);
ui[i] = lb;
}
}
...全文
177 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
snlixing 2017-12-01
  • 打赏
  • 举报
回复
引用 6 楼 qq_40673801 的回复:
[quote=引用 4 楼 snlixing 的回复:] 改成 ui[i][j] = lb 试试
那个,这不合乎格式吧[/quote] 错了,应该是ui[I,j] = lb 
xuzuning 2017-12-01
  • 打赏
  • 举报
回复
你看看 Controls.Count 就可知道一个都没有少 只是宽度(35)太小了,后面生成的遮挡了前面的 就算指定自动大小 lb.AutoSize = true; 仍会遮挡一部分 不指定 AutoSize 时至少需 lb.Location = new Point(i * 105, j * 35);
  • 打赏
  • 举报
回复
谢谢各位大佬了
  • 打赏
  • 举报
回复
引用 4 楼 snlixing 的回复:
改成 ui[i][j] = lb 试试
那个,这不合乎格式吧
Nick黄 2017-11-30
  • 打赏
  • 举报
回复
1:ui[i] 中只有三个的原因,是i,只有0 1 2 ; 2:设置Label的Size,否则长度太大,会把你后边的Label覆盖。 默认应该是100的宽度,你第三个label的位置是70;
snlixing 2017-11-30
  • 打赏
  • 举报
回复
改成 ui[i][j] = lb 试试
  • 打赏
  • 举报
回复
即便是把  ui[i] = lb;注销,效果也是同样的。
  • 打赏
  • 举报
回复
可是我是 Controls.Add(lb); 只是想让数组存储label。
snlixing 2017-11-30
  • 打赏
  • 举报
回复
    ui[i] = lb; // 这里的i只循环了3次啊

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧