DataGridView实现小结

 
自定义单元格验证
要求:
验证错误后焦点不离开。
实现:
单元格的验证可以使用 dgv_details_CellValidating 事件。
验证不通过时调用 e.Cancel = true; 终止事件链,单元格将保持编辑状态。
调用 dgv_details.CancelEdit(); 可以使单元格的内容会滚到修改前的值。
使用 System.Windows.Forms.SendKeys.Send("^a"); 将全选单元格的内容。
 
单元格选中并开始编辑状态
实现:
//DataGridView 获得焦点
dgv_details.Focus();
//DataGridView 指定当前单元格
dgv_details.CurrentCell = dgv_details[0, 0];
// 开始编辑状态
dgv_details.BeginEdit(false);
 
定制自动生成绑定了列
实现:
dgv_details.AutoGenerateColumns = false;
 
设置列的背景色
实现:
Color GridReadOnlyColor = Color.LightGoldenrodYellow;
dgv_details.Columns[1].DefaultCellStyle.BackColor =
WinKeys.GridReadOnlyColor;
 
DataGridView 单元格 验证 的设计的问题
问题一:绑定还是不绑定?
绑定的优势:比较简单,代码少。
绑定得缺点: DataGridView 中的数据受数据源的影响(主键约束、值类型约束)。不一至时会激发 DataError 事件,输入的内容无法保存到单元格中和数据源中。特殊的验证(比如长度、格式等)还是需要另外写代码实现。
关于增加行的问题。增加新行时多主键的验证有问题,而且验证不通过时会将新行全部删除。限制很多,很不方便。
 
非绑定的优势:验证等处理比较灵活。不受数据源的约束。
非绑定得缺点:显示和向数据库更新数据时需要比较多的代码实现,效率比较低。
 
总的感觉在处理验证比较麻烦的场合,我还是比较喜欢非绑定的方式。如果数据量大,验证比较简单的场合使用绑定模式比较好
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值