给LABLE赋值问题

gragon 2010-01-14 10:29:23
我有10个LABLE,ID分别是LAB1,LAB2,LAB3,LAB4.....我现在要给10个LAB赋值。LABi=i*9-5!怎么用循环来赋值
...全文
257 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
mngzilin 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 gragon 的回复:]
this.Controls[int]内面只能INT,不能跟其他的

[/Quote]

你先试过了再回复

this.Controls["str"]其实里面的str也只是个索引值罢了,和C++里面的宏定义相似
gragon 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mngzilin 的回复:]
C# codefor (int i=1; i<=10; i++)
{
(this.Controls["LAB"+ i.ToString()]as Label).Text= (i*9-5).ToString();
}
[/Quote]
this.Controls[int]内面只能INT,不能跟其他的
gragon 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mngzilin 的回复:]
引用 10 楼 gragon 的回复:
自己顶起来,我中午在线等。


你想等什么样的答案?
[/Quote]
在.NET2003下可以用
xujun5031 2010-01-14
  • 打赏
  • 举报
回复
UP
mngzilin 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gragon 的回复:]
自己顶起来,我中午在线等。
[/Quote]

你想等什么样的答案?
gragon 2010-01-14
  • 打赏
  • 举报
回复
自己顶起来,我中午在线等。
lovexilove 2010-01-14
  • 打赏
  • 举报
回复
up
lianyi68 2010-01-14
  • 打赏
  • 举报
回复
learning。。。
gragon 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 snowdust 的回复:]
C# codefor (int i=1; i<=10; i++)
{
Label[] lbl= (Label[])this.Controls.Find("LAB"+ i.ToString(),true);if (lbl.Length==1)
{
lbl[0].Text= (i*9-5).ToString();
}
}
[/Quote]
可能是我用的是.net2003,this.Controls没有find属性
mngzilin 2010-01-14
  • 打赏
  • 举报
回复
for (int i = 1; i <= 10; i++)
{
(this.Controls["LAB" + i.ToString()] as Label).Text = (i * 9 - 5).ToString();
}
antony1029 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 snowdust 的回复:]
上面那个有点问题,以这个为准:
C# codefor (int i=1; i<=10; i++)
{
Control[] ctls=this.Controls.Find("LAB"+ i.ToString(),true);if (ctls.Length==1&& (ctls[0]is Label))
{
(ctls[0]as Label).Text= (i*9-5).ToString();
}
}
[/Quote]

UP
Snowdust 2010-01-14
  • 打赏
  • 举报
回复
上面那个有点问题,以这个为准:
for (int i = 1; i <= 10; i++)
{
Control[] ctls = this.Controls.Find("LAB" + i.ToString(), true);
if (ctls.Length == 1 && (ctls[0] is Label))
{
(ctls[0] as Label).Text = (i * 9 - 5).ToString();
}
}
qqiuzaihui 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 snowdust 的回复:]
C# codefor (int i=1; i<=10; i++)
{
Label[] lbl= (Label[])this.Controls.Find("LAB"+ i.ToString(),true);if (lbl.Length==1)
{
lbl[0].Text= (i*9-5).ToString();
}
}
[/Quote]
UP
Snowdust 2010-01-14
  • 打赏
  • 举报
回复
for (int i = 1; i <= 10; i++)
{
Label[] lbl = (Label[])this.Controls.Find("LAB" + i.ToString(), true);
if (lbl.Length == 1)
{
lbl[0].Text = (i * 9 - 5).ToString();
}
}
zishanyan 2010-01-14
  • 打赏
  • 举报
回复
最简单的就是把这些lable都扔进集合,然后遍历集合赋值
xray2005 2010-01-14
  • 打赏
  • 举报
回复
sorry,应该是FindControl方法:

for (int i = 1; i <= 10; i++)
{
Label lbl = this.FindControl("LAB" + i.ToString()) as Label;
if (lbl!=null)
{
lbl.Text = (i * 9 - 5).ToString();
}
}
angel6709 2010-01-14
  • 打赏
  • 举报
回复
ProjectDD 2010-01-14
  • 打赏
  • 举报
回复
学习不错。。
zekelove 2010-01-14
  • 打赏
  • 举报
回复
for(int i=1;i<11;i++)
{
Label lbl = (Label)this.Controls.Find("LAB" + i.ToString());
lb1.text=(i*9-5).toString();
}
cjnkd 2010-01-14
  • 打赏
  • 举报
回复
17楼,OK
加载更多回复(6)

110,536

社区成员

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

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

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