DataGridView使用技巧二:设置单元格只读
一、修改ReadOnly属性
1、设置整个DataGridView只读:
DataGridView.ReadOnly=true;
此时用户的新增行和删除行操作也被屏蔽了。
2、设置DataGridView内某个单元格不可编辑,例如:设置第二行第一列的单元格不可编辑:
this.dgv_PropDemo[0, 1].ReadOnly = true;
3、设置DataGridVIew的某列整列不可编辑,例如:设置第二列不可编辑:
this.dgv_PropDemo.Columns[1].ReadOnly = true;
4、设置DataGridView的某行整行不可编辑,例如:设置第三行不可编辑:
this.dgv_PropDemo.Rows[2].ReadOnly = true;
二、使用EditMode属性
EditMode属性:获取或设置一个值,该值指示如何开始编辑单元格,属性值是DataGridViewEditMode枚举值之一。
| 成员名称 | 说明 |
| EditOnEnter | 当单元格接收到焦点时即可开始编辑。在按 Tab 键在行中横向输入值,或按 Enter 键在列中纵向输入值时,此模式非常有用。 |
| EditOnF2 | 当单元格获得焦点时按 F2 开始编辑。此模式将选择点放置在单元格内容的末尾。 |
| EditOnKeystroke | 当单元格获得焦点时按任意字母数字键开始编辑。 |
| EditOnKeystrokeOrF2 | 当单元格获得焦点时按任意字母数字键或 F2 开始编辑。 默认值 |
| EditProgrammatically | 仅在调用 BeginEdit 方法时开始编辑。 |
注:除了EditProgrammatically之外,所有DataGridViewEditMode值都允许用户通过双击单元格来开始编辑该单元格。
当DataGridView的EditMode属性被设置为EditProgrammatically时,用户就不能手动编辑单元格的内容了。但是可以通过程序,调用DataGridView.BeginEdit方法,使单元格进入编辑模式进行编辑。
例如:
this.dgv_PropDemo.BeginEdit(true);
三、根据条件设定单元格的不可编辑状态
当一个一个的通过单元格坐标设定单元格ReadOnly属性的方法太麻烦的时候,你可以通过CellBeginEdit事件来取消单元格的编辑。
示例:
private void dgv_PropDemo_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridView dgv = sender as DataGridView;
//当前单元格的列名称等于Sex并且当前单元格的值等于“男”的时候取消编辑
if (dgv.Columns[e.ColumnIndex].Name == "Sex" && dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Trim() == "男")
{
//取消编辑
e.Cancel = true;
}
}
DataGridView使用技巧二:设置单元格只读的更多相关文章
- DataGridView使用技巧十:单元格表示值的自定义
通过CellFormatting事件,可以自定义单元格的表示值.(比如:值为Error的时候,单元格被设定为红色) 示例: private void dgv_Users_CellFormatting( ...
- NX二次开发-UFUN工程图表格注释设置单元格首选项UF_TABNOT_set_cell_prefs
NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...
- C#:org.in2bits.MyXls 文本格式日期 转换,以及设置单元格格式,保留两位小数点
org.in2bits.MyXls Excel导入日期格式的处理 表格内容为 2014-7-22 ,导入后显示为 41842 等于一个数值,根本不是日期,后来百度了一下,发现要做如下处理: stri ...
- DataGridView:根据条件改变单元格的颜色
根据条件改变DataGridView行的颜色可以使用RowPrePaint事件. 示例程序界面如下: 示例程序代码如下: using System; using System.Collections. ...
- 20191012——POI设置单元格自动行高(思路)
在经过Jxls或者POI导出数据至excel中后,发现有的单元格内容太多,既没有自动换行,也没有自动增大行高.那如何通过Java代码来实现呢?请看下面步骤: (一)首先,将excel设置为最合适的行高 ...
- firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作。以下方式可以解决
1. firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作. 如果是上面一行 和下面一行是分别属于两个table,但是他们的列需要对齐,也就是说分开画的,然后设 ...
- UITableView设置单元格选中后只显示一个打勾的三种简单方法(仅供参考)
1.第一种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态. - (UITableViewCell*)tableView:(UITableView* ...
- C# Aspose.Cells 如何设置单元格样式
//Instantiating a Workbook object Workbook workbook = new Workbook(); //Adding a new worksheet to th ...
- NPOI设置单元格背景色
NPOI设置单元格背景色在网上有好多例子都是设置为NPOI内置的颜色值 但是想用rgb值来设置背景色,即:通过HSSFPalette类获取颜色值时会抛出异常:Could not Find free c ...
随机推荐
- Google Chrome调试js代码,开发者工具之调试工具常用功能
参考:Google Chrome调试js代码-http://www.open-open.com/lib/view/open1384785324165.html 重点:左下角一个{}括号图标按钮用于把杂 ...
- WEB网络问题的排查【转】
Browser/Server结构主要是利用了不断成熟的Web浏览器技术:结合浏览器的多种脚本语言和ActiveX技术,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能,同时节约了开发成本.B/S ...
- PopupWindow的简单使用(结合RecyclerView)
Android弹窗: 在Android中弹出式菜单(以下称弹窗)是使用十分广泛一种菜单呈现的方式,弹窗为用户交互提供了便利.关于弹窗的实现大致有以下两种方式AlertDialog和PopupWindo ...
- 博客目录之C#
C# BackgroundWorker的Bug??? C# BeginInvoke和EndInvoke方法 c# 高效的线程安全队列ConcurrentQueue C# ManualResetEven ...
- [sh]uniq-sort-awk
题目:[百度搜狐面试题] 统计url出现次数 oldboy.log http://www.etiantain.org/index.html http://www.etiantain.org/1.htm ...
- linux 日志定时轮询流程详解(logrotate)
logrotate介绍 对于Linux系统安全来说,日志文件是极其重要的工具.日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.当日志文件不断增长的时候,就需要定 ...
- jquery.roundabout.js图片叠加3D旋转
Roundabout是一个jQuery插件能够将一组静态HTML元素转换成可以灵活定制具有类似于转盘旋转效果的交互区域.有多种旋转形状可供选择.官方说明:roundabout.js是一个jQuery插 ...
- JSP版LCX:端口转发神器 KPortTran
最近接触内网很多,渗透过程中,由于windows和linux的差别以及运行语言环境的限制导致端口转发经常出现问题.于是自己写了个简单的JSP的端口转发脚本.仿造LCX的功能,具有正向.反向.监听三种模 ...
- C++ 11 创建和使用 shared_ptr
shared_ptr 的类型是C + +标准库中一个聪明的指针,是为多个拥有者管理内存中对象的生命周期而设计的.在你初始化一个 shared_ptr 后,你可以复制它,把函数参数的值递给它,并把它分配 ...
- ny37 回文字符串
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当 ...