DataGridView相关-自定义属性?

日前,开始用Winform开发程序。DataGridView比起来WebForm中的GridView不知道好用了多少倍!唉,可怜的Web程序员。但是内置的列类型还是不够用,于是按照在Webform中的经验,先定制一些自定义的DataGridViewColumn的子类,便于使用DataGridView。
  不得不说的是,在Winform中开发自定义控件确实爽多了,很容易的(对比Webform中)实现了几个自定义列类型,经测试使用还可以,可是就是不支持设计期,明明在列的编辑器中可以察看自定义的属性,也可以修改,但却不能保存,关掉重新打开列编辑器后那几个自定义属性还是一片空白!
未修正的示意代码如下:

public class MyCustomColumnCell : DataGridViewTextBoxCell
{
  private int _myCustomProperty;
  public int MyCustomProperty
  {
  get { return _myCustomProperty; }
  set { _myCustomProperty = value; }
  }
  .
  .
  .


  public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
  {
  base.InitializeEditingControl(rowIndex, initialFormattedValue,
  dataGridViewCellStyle);
  MyCustomColumnEditor ctl =
  DataGridView.EditingControl as MyCustomColumnEditor;
  ctl.MyCustomProperty=this.MyCustomProperty;
  ctl.Value = this.Value;
  }
}

--------------------------------------------------------------------------------

public class MyCustomColumn : DataGridViewColumn
{
  private int _myCustomProperty;
  public int MyCustomProperty
  {
  get { return _myCustomProperty; }
  set { _myCustomProperty = value; }
  }
  .
  .
  .

  }

  经过一番上网搜索,终于找到了解决方法,原来需要在自定义的Column类中,覆盖Clone()方法!经过一番修改,测试,^_^果然搞定。废话少说,示意代码如下:
public override object Clone()
  {
  MyCustomColumn col = (MyCustomColumn)base.Clone();
  col.MyCustomProperty = _myCustomProperty;
  return col;
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值