1

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

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

当我克隆“MaskTextColumn”时,我的客户属性不会复制到新对象,我想使用自定义属性值进行克隆。

4

2 回答 2

2

您应该覆盖克隆方法以包含您的自定义属性。正如此链接所述,

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

代码如下:

public override Object Clone()
{
    object clonedObject = base.Clone();
    MaskTextColumn clonedColumn = clonedObject as MaskTextColumn;
    clonedColumn.PromptChar = this.PromptChar;
    // .. more property settings here
    return clonedColumn;
}
于 2012-03-24T08:39:31.410 回答
2

您需要在自定义派生类中重写 Clone 方法。

像这样的东西:

public override object Clone() 
{
    var clonedColumn = base.Clone() as CustomColumn;
    clonedColumn.CustomProp = this.CustomProp;
    return clonedColumn;
}
于 2012-03-24T08:42:48.643 回答