比如有很多的Label,从Label1一直到Label20
能不能用类似JavaScript的Eval的方式
作个循环,然后得到所有的对象的控制呢?

解决方案 »

  1.   

    用反射就可以,要是嫌麻烦你可以用个HashTable把label都装进去,key就用"labelX",value就是label本身。这样循环用"labelX"取出label就可以用了
      

  2.   

    Hashtable hst = new Hashtable();
    hst.Add(Lable1.Name,Label1);
    hst.Add(Lable2.Name,Label2);
    ...
    hst.Add(LableX.Name,LabelX);
    使用:
    for( int i = 0; i < X; i++ )
    {
    Label lbl = (Label)hst["Label" + i.ToString()];
    lbl.XXXXXXX...
    }
    不知道写没写对,没环境
      

  3.   

    Hashtable hst = new Hashtable();
    hst.Add(Lable1.Name,Label1);
    hst.Add(Lable2.Name,Label2);
    ...
    hst.Add(LableX.Name,LabelX);
    使用:
    for( int i = 0; i < X; i++ )
    {
    Label lbl = (Label)hst["Label" + i.ToString()];
    lbl.XXXXXXX...
    }
    不知道写没写对,没环境
      

  4.   

    楼上的方法应该可行。
    如果一个Form上的label不管多少都统一要控制的话:
    foreach(Control ctrl in this.Controls)
    {
        if(ctrl is Label)
            ctrl.BackColor = Color.Blue;
    }
      

  5.   

    反射也是很简单的先得到字符串的类型labelX然后就可以操作了
      

  6.   

    一直在找的方法,.net中没有eval的吗?
      

  7.   

    如果要代替的不是lable而是一个局部的临时变量又如何解决呢????
      

  8.   

    FindControl也是可以的。变量那就只能反射了
      

  9.   

    反射嗷嗷的
    ======================================================
    欢迎加入.net群:13817403(如果遭拒绝则说明群已满)本人大四,下学期找工作了,各位兄弟帮帮忙
    我的简历:http://202.118.70.40/winal/introduce.aspx
    ======================================================