我正在重构一个包含很多的程序 从运行时信息动态创建的表单。
为了降低系统的复杂程度,我想为每个表单编写单独的代码文件。 由于表单很多,我正在考虑一种方法来自动执行从运行时收集的数据创建表单源代码文件的过程。
例如如果我有一个名为 EditPeople 的窗体的运行时实例,我想创建 EditPeople.designer.cs 的源代码,这样我就可以在 Windows 窗体设计器中编辑窗体。
您知道是否有一些框架或工具可以简化这项任务吗?
最佳答案
我刚刚看到这个问题,为了将来引用,你可以尝试这样的事情:
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...
}
关于c# - Visual Studio 窗体设计器源代码的运行时创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720104/