如何在C#窗口应用程序中复制Groupbox, 组框包含30个文本框,我需要在特殊事件上复制它,我不知道所需的组框的最大数量
答案 0 :(得分:0)
如果您使用winforms,可能的解决方案:
使用反射创建一个相同类型的新对象,任何可写属性都会复制它们的值,使用此方法:
private object CloneObject(object o)
{
Type t = o.GetType();
PropertyInfo[] properties = t.GetProperties();
Object p = t.InvokeMember("", System.Reflection.
BindingFlags.CreateInstance, null, o, null);
foreach (PropertyInfo pi in properties)
{
if (pi.CanWrite)
{
pi.SetValue(p, pi.GetValue(o, null), null);
}
}
return p;
}
使用它像:
Object p = t.InvokeMember("", System.Reflection.
BindingFlags.CreateInstance, null, o, null);
foreach (PropertyInfo pi in properties)
{
if (pi.CanWrite)
{
pi.SetValue(p, pi.GetValue(o, null), null);
}
}
return p;
两种方法都描述为here