继承DataGridView之后,新增一些属性,这些属性会在设计器中显示出来,但是却发现即使在设计器中设置了这些自定义属性的值,等到运行的时候这些值还是没有被设置。网上搜了下,也有人提这个问题,不过回答似乎都不很明确,其实很简单,新增了属性之后,需要重写基类的 Clone()方法,以保证新的属性能够被复制:
using System;
using System.Windows.Forms;
namespace SaleManage.Controls
{
public class DataGridViewValidatedColumn:DataGridViewTextBoxColumn
{
public bool AllowNull
{
get;
set;
}
public Double? MinValue
{
get;
set;
}
public Double? MaxValue
{
get;
set;
}
public override object Clone()
{
DataGridViewValidatedColumn col=(DataGridViewValidatedColumn)base.Clone();
col.MaxValue = this.MaxValue;
col.MinValue = this.MinValue;
col.AllowNull = this.AllowNull;
return col;
}
}
}