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 ..没有变化......有什么问题?提前致谢
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()方法,则设计器不会提交您对自定义属性值所做的任何更改.