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 に答える