欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

C#操作DataGridView设置单元格只读

时间:2022-12-01 10:56:16|栏目:.NET代码|点击:

一、修改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;
            }
        }

上一篇:WPF框架Prism中导航Navigation用法介绍

栏    目:.NET代码

下一篇:C#基于NPOI操作Excel

本文标题:C#操作DataGridView设置单元格只读

本文地址:http://www.codeinn.net/misctech/220300.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有