补充:改为 this.Controls.XXX  仍旧不行

解决方案 »

  1.   

    用反射获取变量(控件也是变量),变量必须是 public型,否则就获取不到.
      

  2.   

    Label label = new Label();
    你定义这个变量是在按钮里,按钮事件执行完,变量生命周期就到头了
    你想通过反射找变量,当然就找不到了
    这个控件现在只存在于窗体里,你只能遍历窗体去找了
      

  3.   

    你代码里的反射是模拟“点操作”,是在访问属性或字段的方法,而不是集合元素;而控件是父控件的“子控件集合”的元素,而非父控件的属性.net中集合的“元素”和“属性”不是一个概念,不像js中那样a.x和a["x"]那样可以混用
      

  4.   

    是获取不到的。。http://bbs.csdn.net/topics/390826517我遇到过的情况跟你一样
      

  5.   

    那 System.Reflection.BindingFlags.NonPublic 是干什么用的
      

  6.   

    设置成全局变量label[ ]数组,就可以了
    不过这样一来,就没必要用反射了,可以通过句柄直接访问控件
    当然如果句柄被释放了也无所谓,因为控件已经存在于窗体中了,可以遍历窗体,通过控件name匹配