header detail 1
header detail 2
世界杯热身赛_世界杯赛程 - toption-intl.com
世界杯热身赛_世界杯赛程 - toption-intl.com

克隆控件- C# (Winform)

Home 2026-07-23 13:04:34 克隆控件- C# (Winform)
世界杯德国瑞士

一般来说,您可以使用反射将对象的公共属性复制到新实例。

然而,在处理控件时,您需要谨慎。有些属性,如WindowTarget,只供框架基础结构使用;因此您需要过滤掉它们。

过滤工作完成后,您可以编写所需的一行:

代码语言:javascript复制Button button2 = button1.Clone();下面是一个让你开始的小代码:

代码语言:javascript复制public static class ControlExtensions

{

public static T Clone(this T controlToClone)

where T : Control

{

PropertyInfo[] controlProperties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

T instance = Activator.CreateInstance();

foreach (PropertyInfo propInfo in controlProperties)

{

if (propInfo.CanWrite)

{

if(propInfo.Name != "WindowTarget")

propInfo.SetValue(instance, propInfo.GetValue(controlToClone, null), null);

}

}

return instance;

}

}当然,您还需要调整命名、位置等,也可能需要处理包含的控件。

Post navigation

  • Prev Post 地政總署
Copyright © 2088 世界杯热身赛_世界杯赛程 - toption-intl.com All Rights Reserved.
友情链接