foreach(Control c in this.Controls)

解决方案 »

  1.   

    是不是得到继承Control的所有控件:
    Type t = typeof(System.Windows.Forms.Control);
    Type[] types = t.Assembly.GetTypes();
    for (int i = 0; i < types.Length; i++) {
       if (types[i].IsSubclassOf(t)) {
           Console.WriteLine(types[i]);
       }
    }
      

  2.   

    不是这个意思,我是说,得到窗体中等所有组件: Component
    继承 Component 的所有组件,如 menuitem,FileSystemWatcher,Timer 等.
      

  3.   

    System.Windows.Forms.Form也许没有这样的东西不能确定,请比较清楚的人作答
      

  4.   

    所有的Control都在属性Controls里;
    所有的Component都在字段components里;
    所以这样就可以了:
    ArrayList list = new ArrayList();
    getControls(this, list);
    for (int i = 0; i < components.Components.Count; i++) {
        list.Add(components.Components[i]);
    }static void getControls(Control container, ArrayList list) {
    for(int i = 0; i < container.Controls.Count; i++) {
        list.Add(container.Controls[i]);
    }
    for(int i = 0; i < container.Controls.Count; i++) {
        Control c = container.Controls[i];
        if (c.Controls.Count > 0) {
            getControls(c, list);
        }
    }
    }
    这样就可以得到Form所有定义的Component了。
      

  5.   

    所有的Control都在属性Controls里;.............前提是已添加到Controls
    所有的Component都在字段components里;.........前提是已添加到Components