代码之家  ›  专栏  ›  技术社区  ›  Andrea Parodi

运行时创建Visual Studio窗体设计器源代码

  •  6
  • Andrea Parodi  · 技术社区  · 15 年前

    我正在重构一个包含大量 从运行时信息动态创建的表单。

    为了降低系统的复杂性,我想为每个表单编写单独的代码文件。 因为表单很多,所以我正在考虑一种方法来自动化从运行时收集的数据创建表单源代码文件的过程。

    例如,如果我有一个名为EditPeople的窗体的运行时实例,我希望创建EditPeople.Designer.cs的源代码,以便在Windows窗体设计器中编辑该窗体。

    您知道是否有一些框架或工具可以简化这个任务?

    3 回复  |  直到 15 年前
        1
  •  1
  •   kyndigs    15 年前

    public static List<Control> GetAllControls(IList ctrls)
    {
       List<Control> FormCtrls = new List<Control>();
       foreach (Control ctl in ctrls)
       {
          FormCtrls .Add(ctl);
          List<Control> SubCtrls = GetAllControls(ctl.Controls);
          FormCtrls .AddRange(SubCtrls);
       }
       return FormCtrls;
    } 
    

    List<Control> ReturnedCtrls = GetAllControls(MyForm.Controls);
    

    foreach(Control ctrl in ReturnedCtrls)
    {
       // Generate Designer Source using ctrl properties
       ctrl.Left
       ctrl.Top
       // etc...
    }
    
        3
  •  0
  •   user488399    15 年前

    for(int i=0; i<2;i++){
    Controls.Add(new Button());
    }
    

    //...
    InitializeComponent()
    {
        //...
        button1 = new Button();
        button2 = new Button();
        button3 = new Button();
        //...
        this.Controls.Add(button1);
        this.Controls.Add(button2);
        this.Controls.Add(button3);
    }
    //...
    

    推荐文章