C# 是否在运行时生成.designer.cs?

C# 是否在运行时生成.designer.cs?,c#,winforms,C#,Winforms,我在运行时从另一个父窗体创建子窗体,子窗体包含一些在运行前无法检测到的控件,因为它依赖于传递给父窗体的数据 运行前的子窗体没有控件,因此.designer.cs没有控件选项。因此,如果.designer.cs包含所生成控件的属性,则在运行后将控件添加到子窗体中?以及如何在运行时复制.designer.cs的内容并将其放入文本文件中?此代码将遍历表单并从中获取所需内容。 如果您请求控件,您将获得表单上的所有内容 private IEnumerable<T> GetControls<

我在运行时从另一个父窗体创建子窗体,子窗体包含一些在运行前无法检测到的控件,因为它依赖于传递给父窗体的数据

运行前的子窗体没有控件,因此
.designer.cs
没有控件选项。
因此,如果
.designer.cs
包含所生成控件的属性,则在运行后将控件添加到子窗体中?以及如何在运行时复制
.designer.cs
的内容并将其放入文本文件中?

此代码将遍历表单并从中获取所需内容。 如果您请求
控件
,您将获得表单上的所有内容

private IEnumerable<T> GetControls<T>(Control.ControlCollection ctrls)
{
    foreach (object ctrl in ctrls)
    {
        foreach (var item in GetControls<T>(((Control)ctrl).Controls))
        {
            yield return item;    
        } 
        if (ctrl is T)
           yield return (T)ctrl;

    }
}

foreach(var txtbox in  GetControls<TextBox>(form.Controls)
{
    txtbox.ReadOnly = false;
}
private IEnumerable GetControls(Control.ControlCollection ctrls)
{
foreach(对象在ctrls中按ctrl键)
{
foreach(GetControls中的var项(((Control)ctrl.Controls))
{
收益回报项目;
} 
如果(ctrl为T)
收益率-收益率(T)ctrl;
}
}
foreach(GetControls(form.Controls)中的var txtbox)
{
txtbox.ReadOnly=false;
}

.designer.cs
由GUI visual designer(visual Studio)生成。它已编译,无法在运行时修改。

.designer.cs
在运行时未修改,内容不会更改change@ASh为什么要获取运行时生成的控件的属性?需要获取哪些属性?yourControl.PropertyName将为您提供值!@Damith我要保存控件名称,键入,位置,Text@Ahmed,是。从
winform.Controls开始,递归扫描
控件
集合,并保存控件名称、类型、位置和文本