添加datagridviewcolumn属性设计时

ghi*_*boz 3 c# datagridview properties datagridviewcolumn

我有这个问题,我创建了自己的datagridviewcolumn,我希望添加一些你可以在设计时编辑中更改的属性...这是我的代码:

private int nMaxLength;
[Description("Fondoscala valore"), Category("Sea")]
public int MaxLength
{
    get { return nMaxLength; }
    set { nMaxLength = value; }
}
Run Code Online (Sandbox Code Playgroud)

实际上没问题,当你打开列编辑器时,你会在Sea类别下看到这个属性,你可以改变,但是当你改变它时,如果你去.Designer.cs文件,你会看到MaxLength值为0 ..没有变化......有什么问题?提前致谢

Bra*_*ith 8

Forms Designer执行一些内部技巧,以便您在设计时更改列类型(例如,从中DataGridViewTextBoxColumn更改DataGridViewButtonColumn).因此,设计人员依赖于您的子类DataGridViewColumn具有正确实现的Clone()方法,即:

public override object Clone() {
    MyDataGridViewColumn that = (MyDataGridViewColumn)base.Clone();
    that.MaxLength = this.MaxLength;
    return that;
}
Run Code Online (Sandbox Code Playgroud)

如果不覆盖该Clone()方法,则设计器不会提交您对自定义属性值所做的任何更改.