c# - Visual Studio 窗体设计器源代码的运行时创建

标签 c# .net winforms visual-studio-2010 c#-4.0

我正在重构一个包含很多的程序 从运行时信息动态创建的表单。

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

例如如果我有一个名为 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/

相关文章:

c# - WinForms 数据绑定(bind)

c# - 选择 ListBox Winform 控件中的所有项目

c# - 如何正确测试 NHibernate FetchMode.Eager?

c# - TPL数据流,数据 block 收到第一项时的通知

c# - 从ViewModel(MVVM)添加到XAML WPF

c# - 确定枚举标志组合中包含的标志数量的最佳做法?

c# - 为部分 utf8 编码的 URL 寻找解析 API

c# - 如何生成 .svc 文件?

.net - 用派生控件替换 Windows.Forms 控件的可靠/简单方法?

c# - 免费的密码学库