小弟重写了DataGridViewColumn,然后在重写的自定义列中添加了几个属性,比如:
private bool _IsComBoBox;
/// <summary>
/// 是否是ComBoBox控件
/// </summary>
[DefaultValue(true)]
public bool IsComBoBox
{
get { return _IsComBoBox; }
set
{
_IsComBoBox = value;
}
}
列定义好了后,在界面上给DataGridView增加列后选择自定义的列,在属性设置的杂项那里也可以看到IsComBoBox,但是默认值竟然是False,也就是说[DefaultValue(true)]属性没有起作用,然后我到Form的designer中,发现设计器中IsComBoBox的值也是False,于是DataGridView的编辑列中把IsComBoBox改为true,保存后,去查看,发现还是False,于是我在去修改为False,保存后立刻在在“编辑列”那里看,发现又是False,竟然没有保存住!!我尝试关闭form再打开、重新生成方案等等,都不能解决!!如果不再界面设置,而是程序去处理,就没有问题,但是做东西就要做到完美,如何能够在界面上设计并且能保存住呢??希望做过这方面的高手给小弟一点提示!!
private bool _IsComBoBox;
/// <summary>
/// 是否是ComBoBox控件
/// </summary>
[DefaultValue(true)]
public bool IsComBoBox
{
get { return _IsComBoBox; }
set
{
_IsComBoBox = value;
}
}
列定义好了后,在界面上给DataGridView增加列后选择自定义的列,在属性设置的杂项那里也可以看到IsComBoBox,但是默认值竟然是False,也就是说[DefaultValue(true)]属性没有起作用,然后我到Form的designer中,发现设计器中IsComBoBox的值也是False,于是DataGridView的编辑列中把IsComBoBox改为true,保存后,去查看,发现还是False,于是我在去修改为False,保存后立刻在在“编辑列”那里看,发现又是False,竟然没有保存住!!我尝试关闭form再打开、重新生成方案等等,都不能解决!!如果不再界面设置,而是程序去处理,就没有问题,但是做东西就要做到完美,如何能够在界面上设计并且能保存住呢??希望做过这方面的高手给小弟一点提示!!
按道理没有写DesignerSerializationVisibility是会保存的,有点奇怪。