添加datagridviewcolumn属性设计时

时间:2010-09-13 09:33:46

标签: c# datagridview properties datagridviewcolumn

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

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

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

1 个答案:

答案 0 :(得分:8)

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

public override object Clone() {
    MyDataGridViewColumn that = (MyDataGridViewColumn)base.Clone();
    that.MaxLength = this.MaxLength;
    return that;
}

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

相关问题