日期:2014-05-19  浏览次数:20966 次

C#中,怎样用变量来表示控件名称
我定义了一组label,label1,label2,label3.....
我现在想通过for   循环来设置   它们的属性
for   (int   i=0;i <20;i++   )
{
      label[i].text= "abcd ";   //就是这个意思,但是这样表达肯定是不行的
}
请各位大哥指点一下怎么样才能调用呢,我搜到了一些,例如
//tedit(findcomponent( "label "   +inttostr(i))).Visible=false;
还有vb里面的实现方式,但是在C#中如何实现呢?
谢谢

------解决方案--------------------
把它们放入容器里,例如groupBox;
for (int i = 0; i < groupBox1.Controls.Count; i++)
{
groupBox1.Controls[i].Text = " ";
}
------解决方案--------------------
http://community.csdn.net/Expert/TopicView3.asp?id=5539308
------解决方案--------------------
((Label)FindControl[ " "+i]).Text= "abcd ";
------解决方案--------------------
把它们放入容器里,例如groupBox;
for (int i = 0; i < groupBox1.Controls.Count; i++)
{
groupBox1.Controls[i].Text = " ";
}
在循环体内加一个判断
for (int i = 0; i < groupBox1.Controls.Count; i++)
{
if(groupBox1.Controls[i] is Label)
groupBox1.Controls[i].Text = " ";
}
------解决方案--------------------
groupBox1.Controls[i].Text = " ";这里改成你需要的操作就可以了

------解决方案--------------------
可以借用VB中的函数。
Label l = Microsoft.VisualBasic.Interaction.CallByName(this, "LableName " ,Microsoft.VisualBasic.CallType.Get) as Label;