如何在制作克隆时复制自定义属性

时间:2012-03-24 08:19:49

标签: c# winforms clone datagridviewcolumn customcolumn

我在“winforms”应用程序中使用C#3.5中的“DataGridView”。

我有一个自定义列是“MaskTextColumn”,我有一些自定义属性,如:Mask, “PromptChar”等。

当我复制“MaskTextColumn”时,我的客户属性没有被复制到新对象,我希望使用自定义属性值进行克隆。

2 个答案:

答案 0 :(得分:2)

您应该覆盖clone方法以包含自定义属性。正如此link所述,

  

覆盖克隆时...请务必复制任何值   添加到派生类的属性。

代码如下:

public override Object Clone()
{
    object clonedObject = base.Clone();
    MaskTextColumn clonedColumn = clonedObject as MaskTextColumn;
    clonedColumn.PromptChar = this.PromptChar;
    // .. more property settings here
    return clonedColumn;
}

答案 1 :(得分:2)

您需要覆盖自定义派生类中的Clone方法。

这样的事情:

public override object Clone() 
{
    var clonedColumn = base.Clone() as CustomColumn;
    clonedColumn.CustomProp = this.CustomProp;
    return clonedColumn;
}