定义单元格验证
要求:
验证错误后焦点不离开。
实现:
单元格的验证可以使用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事件,输入的内容无法保存到单元格中和数据源中。特殊的验证(比如长度、格式等)还是需要另外写代码实现。
关于增加行的问题。增加新行时多主键的验证有问题,而且验证不通过时会将新行全部删除。限制很多,很不方便。
 
非绑定的优势:验证等处理比较灵活。不受数据源的约束。
非绑定得缺点:显示和向数据库更新数据时需要比较多的代码实现,效率比较低。
 
总的感觉在处理验证比较麻烦的场合,我还是比较喜欢非绑定的方式。如果数据量大,验证比较简单的场合使用绑定模式比较好 

转载于:https://www.cnblogs.com/weck0736/archive/2007/12/26/1015587.html

DataGridView 单元格验证相关推荐

  1. DataGridView 单元格自动填充

    在DataGridView单元格中,当输入指定字符时,自动完成填充. 通过 TextBox实现 AutoCompleteMode AutoCompleteMode.Suggest: AutoCompl ...

  2. Winform Datagridview 单元格html格式化支持富文本

    Winform Datagridview 单元格html格式化支持富文本 示例: 源码:https://github.com/OceanAirdrop/DataGridViewHTMLCell 参考: ...

  3. c# winform datagridview单元格合并

    效果 /// <summary>     /// DataGridView 单元格合并信息     /// </summary>     public struct DataG ...

  4. C# 文本输入限制类型,datagridview单元格输入验证

    1.只能输入double类型 private void textBoxX6_KeyPress(object sender, KeyPressEventArgs e){{//数字0~9所对应的keych ...

  5. C# 文本输入限制类型,datagridview单元格输入验证

    1.只能输入double类型 private void textBoxX6_KeyPress(object sender, KeyPressEventArgs e) { { //数字09所对应的key ...

  6. 在 Windows 窗体 DataGridView 单元格中承载控件

    DataGridView 控件提供了多种列类型,使得用户可以通过多种方式输入和编辑值.但是,如果这些列类型无法满足数据输入要求,您也可以使用承载所选控件的单元格创建自己的列类型.要做到这一点,必须定义 ...

  7. C#实例:datagridview单元格合并

    这是替C#微信交流群群友做的一个小实例,目的就是在datagridview选择对应行以后,点击button后获取对应行的ip,并执行相应的操作,其实我觉得这样的话button没必要非放置到datagr ...

  8. .NET DataGridView 单元格添加日历选择控件

    .NET 使用datagridview 在单元格中加入日历选择控件的方法 在最近的项目改动中,需要在单元格的日期列中用日历选择的方式提供选择,翻阅了许多的资料 终于还是解决了问题 现在记录一下学习过程 ...

  9. C# DataGridView单元格合并居中

    利用CellPainting事件 方法说明:先将原始表格的单元格框线清除,再利用事件对需要显示的框线进行重新绘制,达到单元格合并的效果. int index = 0; // 用于得到合并后文字应该显示 ...

最新文章

  1. R语言dplyr包将dataframe中的NA值替换(replace)为0实战:所有NA值替换(replace)为0、具体列的NA值替换(replace)为0、若干列的NA值替换(replace)为0
  2. 宏观经济之国家经济与建设
  3. poj3069 Saruman's Army(贪心)
  4. 计算机公式or,AND、OR函数详解_Excel公式教程
  5. ehcache memcache redis 三大缓存男高音
  6. 使用 Xtrabackup 在线对MySQL做主从复制【转】
  7. Python标准库学习笔记7:数据持久存储与交换
  8. Xilinx FPGA中RS编码IP核之Generator Start
  9. 网格员试题计算机,网格员考试 计算机基础知识试题库完整.doc
  10. Spring四个核心包
  11. POS58打印机的操作
  12. Vue 不睡觉教程3 - 来点实在的:自动计算剩余时间的任务列表
  13. 0004-1-模型好坏评判标准
  14. java根据生日判断生日和星座
  15. js如何修改对象的padding属性
  16. 山东大学2021算法期末
  17. c语言输出cad scr文件,CAD脚本文件(*.scr)有什么用?
  18. 全国高校大学招标公告信源地址大全分享
  19. PICASSO,一个高效的搜推广稀疏训练解决方案
  20. 第1期-通过携程爬取机票价格

热门文章

  1. android 布局管理器,【Android开发】布局管理器-表格布局
  2. java post 登陆_java HttpPost 密码登录和提交表单的案例
  3. java 数组 参数 ppt,Java自学课件-数组.ppt
  4. php 固定人数拼手气_独立统计在线人数和访问数代码分享(php)
  5. php处理文档流,html的文档流是什么?html文档流简介
  6. discuz mysql_搭建Discuz! (mysql+apache+Discuz! )
  7. intellij idea操作maven时控制台中文乱码
  8. 被VS Code牢牢圈粉了!
  9. 女朋友还是游戏?一起来分析下游戏的开发与销售情况!
  10. 还记得当年你是如何接触Python的吗?