是否可以复制某个控件的所有属性?(C#窗口形式)

例如,我有一个DataGridView具有Blue

BackgroundColor属性等的控件,是否可以将这些属性以编程方式传递或传递给另一个DataGridView控件?

像这样:

dtGrid2.Property = dtGrid1.Property; // but of course, this code is not working

谢谢…

回答:

您将需要使用反射。

您可以获取对源控件中每个属性的引用(基于其类型),然后“获取”其值-将该值分配给目标控件。

这是一个粗略的例子:

    private void copyControl(Control sourceControl, Control targetControl)

{

// make sure these are the same

if (sourceControl.GetType() != targetControl.GetType())

{

throw new Exception("Incorrect control types");

}

foreach (PropertyInfo sourceProperty in sourceControl.GetType().GetProperties())

{

object newValue = sourceProperty.GetValue(sourceControl, null);

MethodInfo mi = sourceProperty.GetSetMethod(true);

if (mi != null)

{

sourceProperty.SetValue(targetControl, newValue, null);

}

}

}

以上是 是否可以复制某个控件的所有属性?(C#窗口形式) 的全部内容, 来源链接: utcz.com/qa/430240.html

回到顶部