例如,我有一个DataGridView具有Blue BackgroundColor属性等的控件,是否可以将这些属性以编程方式传递或传递给另一个DataGridView控件?
DataGridView
BackgroundColor
像这样:
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); } } }